
package constants;


import client.MapleCharacter;
import client.MapleClient;
import client.inventory.Equip;
import client.skills.Skill;
import client.skills.SkillFactory;
import client.status.MonsterStatus;
import com.fasterxml.jackson.core.type.TypeReference;
import configs.FishingConfig;
import configs.SealedConfig;
import configs.ServerConfig;

import java.awt.Point;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import server.MapleItemInformationProvider;
import server.MapleStatEffect;
import server.MapleStatEffectFactory;
import server.StructItemOption;
import server.maps.MapleMapObjectType;
import tools.DateUtil;
import tools.JsonUtil;
import tools.MaplePacketCreator;
import tools.Randomizer;


public class GameConstants {
    /*   38 */   private static final Logger log = LogManager.getLogger(GameConstants.class);

    /*   40 */   public static final List<MapleMapObjectType> rangedMapobjectTypes = Collections.unmodifiableList(Arrays.asList(new MapleMapObjectType[]{MapleMapObjectType.PLAYER, MapleMapObjectType.HIRED_MERCHANT, MapleMapObjectType.ITEM, MapleMapObjectType.MONSTER, MapleMapObjectType.DOOR, MapleMapObjectType.REACTOR, MapleMapObjectType.SUMMON, MapleMapObjectType.NPC, MapleMapObjectType.MIST, MapleMapObjectType.EXTRACTOR}));


    /*   52 */   public static final int[] itemBlock = new int[]{2430112, 4001168, 3993003, 2340000, 2049100, 4001129, 2040727, 2040037, 2040006, 2040007, 2040303, 2040403, 2040506, 2040507, 2040603, 2040709, 2040710, 2040711, 2040806, 2040903, 2041024, 2041025, 2043003, 2043103, 2043203, 2043303, 2043703, 2043803, 2044003, 2044103, 2044203, 2044303, 2044403, 2044503, 2044603, 2044908, 2044815, 2044019, 2044703};


    public static final int JAIL = 180000001;


    public static final int MAX_BUFFSTAT = 33;


    /*   94 */   public static final int[] blockedSkills = new int[0];
    /*   95 */   public static final String[] RESERVED = new String[]{"Rental", "Donor"};


    /*  101 */   public static final String[] stats = new String[]{"tuc", "reqLevel", "reqJob", "reqSTR", "reqDEX", "reqINT", "reqLUK", "reqPOP", "cash", "cursed", "success", "setItemID", "equipTradeBlock", "durability", "randOption", "randStat", "masterLevel", "reqSkillLevel", "elemDefault", "incRMAS", "incRMAF", "incRMAI", "incRMAL", "canLevel", "skill", "charmEXP", "limitBreak", "imdR", "bdR", "superiorEqp", "maxSuperiorEqp", "recover", "reset", "perfectReset", "effectItemID"};


    /*  108 */   public static final int[] hyperTele = new int[]{310000000, 220000000, 100000000, 250000000, 240000000, 104000000, 103000000, 102000000, 101000000, 120000000, 260000000, 200000000, 230000000};


    /*  122 */   public static final int[] sealedEquip = new int[]{1012438, 1022211, 1032224, 1122269, 1132247, 1152160, 1003976, 1102623, 1082556, 1052669, 1072870, 1212089, 1222084, 1232084, 1242090, 1252033, 1302297, 1312173, 1322223, 1332247, 1342090, 1362109, 1372195, 1382231, 1402220, 1412152, 1422158, 1432187, 1442242, 1452226, 1462213, 1472235, 1482189, 1492199, 1522113, 1532118};


    /*  160 */   public static final int[] goldrewards = new int[]{2049400, 1, 2049401, 2, 2049301, 2, 2340000, 1, 2070007, 2, 2070016, 1, 2330007, 1, 1402037, 1, 2290096, 1, 2290049, 1, 2290041, 1, 2290047, 1, 2290095, 1, 2290017, 1, 2290075, 1, 2290085, 1, 2290116, 1, 1302059, 3, 2049100, 1, 1092049, 1, 1102041, 1, 1432018, 3, 1022047, 3, 3010051, 1, 3010020, 1, 2040914, 1, 1432011, 3, 1442020, 3, 1382035, 3, 1372010, 3, 1332027, 3, 1302056, 3, 1402005, 3, 1472053, 3, 1462018, 3, 1452017, 3, 1422013, 3, 1322029, 3, 1412010, 3, 1472051, 1, 1482013, 1, 1492013, 1, 1382049, 1, 1382050, 1, 1382051, 1, 1382052, 1, 1382045, 1, 1382046, 1, 1382047, 1, 1382048, 1, 1372035, 1, 1372036, 1, 1372037, 1, 1372038, 1, 1372039, 1, 1372040, 1, 1372041, 1, 1372042, 1, 1332032, 8, 1482025, 7, 4001011, 8, 4001010, 8, 4001009, 8, 2047000, 1, 2047001, 1, 2047002, 1, 2047100, 1, 2047101, 1, 2047102, 1, 2047200, 1, 2047201, 1, 2047202, 1, 2047203, 1, 2047204, 1, 2047205, 1, 2047206, 1, 2047207, 1, 2047208, 1, 2047300, 1, 2047301, 1, 2047302, 1, 2047303, 1, 2047304, 1, 2047305, 1, 2047306, 1, 2047307, 1, 2047308, 1, 2047309, 1, 2046004, 1, 2046005, 1, 2046104, 1, 2046105, 1, 2046208, 1, 2046209, 1, 2046210, 1, 2046211, 1, 2046212, 1, 1002801, 2, 1102205, 2, 1402046, 2, 1402047, 2, 1462054, 2, 1462055, 2, 1472074, 2, 1332077, 1, 1402049, 1, 1462053, 1, 1472072, 1, 1492047, 1, 1032080, 20, 1032081, 15, 1032082, 10, 1032083, 5, 1032084, 1, 1112435, 20, 1112436, 15, 1112437, 10, 1112438, 5, 1112439, 1, 1122081, 20, 1122082, 15, 1122083, 10, 1122084, 5, 1122085, 1, 1132036, 20, 1132037, 15, 1132038, 10, 1132039, 5, 1132040, 1, 1092070, 40, 1092071, 30, 1092072, 20, 1092073, 10, 1092074, 1, 1092075, 40, 1092076, 30, 1092077, 20, 1092078, 10, 1092079, 1, 1092080, 40, 1092081, 30, 1092082, 20, 1092083, 10, 1092084, 1, 1092087, 1, 1092088, 1, 1302143, 40, 1302144, 30, 1302145, 20, 1302146, 10, 1302147, 1, 1312058, 40, 1312059, 30, 1312060, 20, 1312061, 10, 1312062, 1, 1322086, 40, 1322087, 30, 1322088, 20, 1322089, 10, 1322090, 1, 1332116, 40, 1332117, 30, 1332118, 20, 1332119, 10, 1332120, 1, 1332121, 40, 1332122, 30, 1332123, 20, 1332124, 10, 1332125, 1, 1342029, 40, 1342030, 30, 1342031, 20, 1342032, 10, 1342033, 1, 1372074, 40, 1372075, 30, 1372076, 20, 1372077, 10, 1372078, 1, 1382095, 40, 1382096, 30, 1382097, 20, 1382098, 10, 1392099, 1, 1402086, 40, 1402087, 30, 1402088, 20, 1402089, 10, 1402090, 1, 1412058, 40, 1412059, 30, 1412060, 20, 1412061, 10, 1412062, 1, 1422059, 40, 1422060, 30, 1422061, 20, 1422062, 10, 1422063, 1, 1432077, 40, 1432078, 30, 1432079, 20, 1432080, 10, 1432081, 1, 1442107, 40, 1442108, 30, 1442109, 20, 1442110, 10, 1442111, 1, 1452102, 40, 1452103, 30, 1452104, 20, 1452105, 10, 1452106, 1, 1462087, 40, 1462088, 30, 1462089, 20, 1462090, 10, 1462091, 1, 1472113, 40, 1472114, 30, 1472115, 20, 1472116, 10, 1472117, 1, 1482075, 40, 1482076, 30, 1482077, 20, 1482078, 10, 1482079, 1, 1492075, 40, 1492076, 30, 1492077, 20, 1492078, 10, 1492079, 1, 1132012, 2, 1132013, 1, 1032031, 1, 1102172, 1, 1002776, 1, 1002777, 1, 1002778, 1, 1002779, 1, 1002780, 1, 1082234, 1, 1082235, 1, 1082236, 1, 1082237, 1, 1082238, 1, 1052155, 1, 1052156, 1, 1052157, 1, 1052158, 1, 1052159, 1, 1072355, 1, 1072356, 1, 1072357, 1, 1072358, 1, 1072359, 1, 1092057, 1, 1092058, 1, 1092059, 1, 1122012, 1, 1302081, 1, 1312037, 1, 1322060, 1, 1332073, 1, 1332074, 1, 1372044, 1, 1382057, 1, 1402046, 1, 1412033, 1, 1422037, 1, 1432047, 1, 1442063, 1, 1452057, 1, 1462050, 1, 1472068, 1, 1482023, 1, 1492023, 1, 1342011, 1, 1522015, 1, 1532015, 1, 1003280, 1, 1003281, 1, 1003282, 1, 1003283, 1, 1003284, 1, 1052374, 1, 1052375, 1, 1052376, 1, 1052377, 1, 1052378, 1, 1072544, 1, 1072545, 1, 1072546, 1, 1072547, 1, 1072548, 1, 1082328, 1, 1082329, 1, 1082330, 1, 1082331, 1, 1082332, 1, 1302173, 1, 1312072, 1, 1322107, 1, 1332148, 1, 1332149, 1, 1342040, 1, 1372100, 1, 1382124, 1, 1402111, 1, 1412071, 1, 1422073, 1, 1432099, 1, 1442136, 1, 1452129, 1, 1462118, 1, 1472141, 1, 1482102, 1, 1492101, 1, 1522020, 1, 1532037, 1, 1942004, 1, 1952004, 1, 1962004, 1, 1972004, 1, 2030008, 5, 1442018, 3, 2040900, 4, 2049100, 10, 2000005, 10, 2000004, 10, 2430144, 10, 2290285, 10, 2028061, 10, 2028062, 10, 2530000, 5};


    /*  522 */   public static final int[] silverrewards = new int[]{2049401, 2, 2049301, 2, 3010041, 1, 1002452, 6, 1002455, 6, 2290084, 1, 2290048, 1, 2290040, 1, 2290046, 1, 2290074, 1, 2290064, 1, 2290094, 1, 2290022, 1, 2290056, 1, 2290066, 1, 2290020, 1, 1102082, 1, 1302049, 1, 1102041, 1, 1452019, 2, 4001116, 3, 4001012, 3, 1022060, 2, 2430144, 5, 2290285, 5, 2028062, 5, 2028061, 5, 2530000, 1, 2041100, 1, 2041101, 1, 2041102, 1, 2041103, 1, 2041104, 1, 2041105, 1, 2041106, 1, 2041107, 1, 2041108, 1, 2041109, 1, 2041110, 1, 2041111, 1, 2041112, 1, 2041113, 1, 2041114, 1, 2041115, 1, 2041116, 1, 2041117, 1, 2041118, 1, 2041119, 1, 2041300, 1, 2041301, 1, 2041302, 1, 2041303, 1, 2041304, 1, 2041305, 1, 2041306, 1, 2041307, 1, 2041308, 1, 2041309, 1, 2041310, 1, 2041311, 1, 2041312, 1, 2041313, 1, 2041314, 1, 2041315, 1, 2041316, 1, 2041317, 1, 2041318, 1, 2041319, 1, 2049200, 1, 2049201, 1, 2049202, 1, 2049203, 1, 2049204, 1, 2049205, 1, 2049206, 1, 2049207, 1, 2049208, 1, 2049209, 1, 2049210, 1, 2049211, 1, 1432011, 3, 1442020, 3, 1382035, 3, 1372010, 3, 1332027, 3, 1302056, 3, 1402005, 3, 1472053, 3, 1462018, 3, 1452017, 3, 1422013, 3, 1322029, 3, 1412010, 3, 1032080, 20, 1032081, 15, 1032082, 10, 1032083, 5, 1032084, 1, 1112435, 20, 1112436, 15, 1112437, 10, 1112438, 5, 1112439, 1, 1122081, 20, 1122082, 15, 1122083, 10, 1122084, 5, 1122085, 1, 1132036, 20, 1132037, 15, 1132038, 10, 1132039, 5, 1132040, 1, 1092070, 40, 1092071, 30, 1092072, 20, 1092073, 10, 1092074, 1, 1092075, 40, 1092076, 30, 1092077, 20, 1092078, 10, 1092079, 1, 1092080, 40, 1092081, 30, 1092082, 20, 1092083, 10, 1092084, 1, 1092087, 1, 1092088, 1, 1302143, 40, 1302144, 30, 1302145, 20, 1302146, 10, 1302147, 1, 1312058, 40, 1312059, 30, 1312060, 20, 1312061, 10, 1312062, 1, 1322086, 40, 1322087, 30, 1322088, 20, 1322089, 10, 1322090, 1, 1332116, 40, 1332117, 30, 1332118, 20, 1332119, 10, 1332120, 1, 1332121, 40, 1332122, 30, 1332123, 20, 1332124, 10, 1332125, 1, 1342029, 40, 1342030, 30, 1342031, 20, 1342032, 10, 1342033, 1, 1372074, 40, 1372075, 30, 1372076, 20, 1372077, 10, 1372078, 1, 1382095, 40, 1382096, 30, 1382097, 20, 1382098, 10, 1392099, 1, 1402086, 40, 1402087, 30, 1402088, 20, 1402089, 10, 1402090, 1, 1412058, 40, 1412059, 30, 1412060, 20, 1412061, 10, 1412062, 1, 1422059, 40, 1422060, 30, 1422061, 20, 1422062, 10, 1422063, 1, 1432077, 40, 1432078, 30, 1432079, 20, 1432080, 10, 1432081, 1, 1442107, 40, 1442108, 30, 1442109, 20, 1442110, 10, 1442111, 1, 1452102, 40, 1452103, 30, 1452104, 20, 1452105, 10, 1452106, 1, 1462087, 40, 1462088, 30, 1462089, 20, 1462090, 10, 1462091, 1, 1472113, 40, 1472114, 30, 1472115, 20, 1472116, 10, 1472117, 1, 1482075, 40, 1482076, 30, 1482077, 20, 1482078, 10, 1482079, 1, 1492075, 40, 1492076, 30, 1492077, 20, 1492078, 10, 1492079, 1, 1132012, 2, 1132013, 1, 1002790, 1, 1002791, 1, 1002792, 1, 1002793, 1, 1002794, 1, 1082239, 1, 1082240, 1, 1082241, 1, 1082242, 1, 1082243, 1, 1052160, 1, 1052161, 1, 1052162, 1, 1052163, 1, 1052164, 1, 1072361, 1, 1072362, 1, 1072363, 1, 1072364, 1, 1072365, 1, 1302086, 1, 1312038, 1, 1322061, 1, 1332075, 1, 1332076, 1, 1372045, 1, 1382059, 1, 1402047, 1, 1412034, 1, 1422038, 1, 1432049, 1, 1442067, 1, 1452059, 1, 1462051, 1, 1472071, 1, 1482024, 1, 1492025, 1, 1342012, 1, 1942002, 1, 1952002, 1, 1962002, 1, 1972002, 1, 1522016, 1, 1532016, 1, 1002587, 3, 1402044, 1, 2101013, 4, 1442046, 1, 1422031, 1, 1332054, 3, 1012056, 3, 1022047, 3, 3012002, 1, 1442012, 3, 1442018, 3, 1432010, 3, 2000005, 10, 2049100, 10, 2000004, 10};


    /*  809 */   public static final int[] peanuts = new int[]{1152000, 30, 1152001, 10, 1152060, 10, 1152061, 10, 3010019, 10, 2040211, 30, 2040212, 10, 1022097, 20, 2049000, 30, 2049001, 30, 2049002, 30, 1332100, 100, 1382058, 100, 1402073, 100, 1432066, 100, 1442090, 100, 1452058, 100, 1462076, 100, 1472069, 100, 1482051, 100, 1492024, 100, 2028062, 50, 2028061, 50, 2530000, 20, 1032083, 50, 1032084, 20, 1112439, 20, 1122084, 50, 1122085, 20, 1132039, 50, 1132040, 20, 1092073, 50, 1092074, 20, 1092078, 40, 1092079, 20, 1092083, 40, 1092084, 20, 1092087, 50, 1092088, 50, 1302146, 40, 1302147, 20, 1312059, 30, 1312060, 20, 1312061, 10, 1312062, 1, 1322087, 30, 1322088, 20, 1322089, 10, 1322090, 1, 1332117, 30, 1332118, 20, 1332119, 10, 1332120, 1, 1332122, 30, 1332123, 20, 1332124, 10, 1332125, 1, 1342030, 30, 1342031, 20, 1342032, 10, 1342033, 1, 1372075, 30, 1372076, 20, 1372077, 10, 1372078, 1, 1382096, 30, 1382097, 20, 1382098, 10, 1392099, 1, 1402087, 30, 1402088, 20, 1402089, 10, 1402090, 1, 1412059, 30, 1412060, 20, 1412061, 10, 1412062, 1, 1422060, 30, 1422061, 20, 1422062, 10, 1422063, 1, 1432078, 30, 1432079, 20, 1432080, 10, 1432081, 1, 1442108, 30, 1442109, 20, 1442110, 10, 1442111, 1, 1452103, 30, 1452104, 20, 1452105, 10, 1452106, 1, 1462088, 30, 1462089, 20, 1462090, 10, 1462091, 1, 1472114, 30, 1472115, 20, 1472116, 10, 1472117, 1, 1482076, 30, 1482077, 20, 1482078, 10, 1482079, 1, 1492076, 30, 1492077, 20, 1492078, 10, 1492079, 1, 1972002, 2, 1612004, 2, 1622004, 2, 1632004, 2, 1642004, 2, 1652004, 2, 2047000, 1, 2047001, 1, 2047002, 1, 2047100, 1, 2047101, 1, 2047102, 1, 2047200, 1, 2047201, 1, 2047202, 1, 2047203, 1, 2047204, 1, 2047205, 1, 2047206, 1, 2047207, 1, 2047208, 1, 2047300, 1, 2047301, 1, 2047302, 1, 2047303, 1, 2047304, 1, 2047305, 1, 2047306, 1, 2047307, 1, 2047308, 1, 2047309, 1, 2046004, 1, 2046005, 1, 2046104, 1, 2046105, 1, 2046208, 1, 2046209, 1, 2046210, 1, 2046211, 1, 2046212, 1, 2049200, 1, 2049201, 1, 2049202, 1, 2049203, 1, 2049204, 1, 2049205, 1, 2049206, 1, 2049207, 1, 2049208, 1, 2049209, 1, 2049210, 1, 2049211, 1, 1382049, 100, 1382050, 150, 1382051, 100, 1382052, 150, 2040006, 20, 2040007, 20, 2040403, 20, 2040506, 2, 2040507, 2, 2040603, 20, 2040507, 20, 2040603, 20, 2040709, 2, 2040710, 2, 2040711, 2, 2040806, 2, 2040903, 20, 2040507, 20, 2040603, 20, 2041024, 20, 2041025, 20, 2043003, 2, 2044019, 2, 2044019, 2, 2043103, 2, 2043203, 2, 2043303, 2, 2043703, 2, 2043803, 2, 2044003, 2, 2044019, 2, 2044103, 2, 2040903, 20, 2040903, 20, 2044203, 2, 2044303, 2, 2044403, 2, 2044503, 2, 2044603, 2, 2044703, 2, 2044815, 2, 2044908, 2, 2340000, 2, 2049406, 10, 2049303, 10, 3010070, 1, 3010073, 1, 3010073, 1, 1402014, 1, 1003172, 2, 1102275, 2, 1082295, 2, 1052314, 2, 1072485, 2, 1003173, 2, 1102276, 2, 1082296, 2, 1052315, 2, 1072486, 2, 1003174, 2, 1102277, 2, 1082297, 2, 1052316, 2, 1072487, 2, 1003175, 2, 1102278, 2, 1082298, 2, 1052317, 2, 1072488, 2, 1003176, 2, 1102279, 2, 1082299, 2, 1052318, 2, 1072489, 2, 1432086, 2, 1442116, 2, 1322096, 2, 1422066, 2, 1402095, 2, 1412065, 2, 1302152, 2, 1312065, 2, 1372084, 2, 1382104, 2, 1452111, 2, 1462099, 2, 1332130, 2, 1472122, 2, 1342036, 2, 1492085, 2, 1532018, 2, 1302016, 2, 3010000, 10, 3010001, 10, 3010002, 10, 3010003, 10, 3010004, 10, 3010005, 10, 3010006, 10, 3010209, 10, 3010210, 10, 3010007, 10, 3010008, 10, 3010009, 10, 3010010, 10, 3010012, 10, 3010013, 10, 3010014, 10, 3010016, 10, 3010294, 10, 3010017, 10, 3010295, 10, 3010018, 10, 3010019, 10, 3010021, 10, 3010024, 10, 3010025, 10, 3010028, 10, 3010029, 10, 3010030, 10, 3010031, 10, 3010032, 10, 3010033, 10, 3010034, 10, 3010035, 10, 3010036, 10, 3010037, 10, 3010038, 10, 3010039, 10, 3010040, 10, 3010041, 10, 3010043, 10, 3010044, 10, 3010045, 10, 3010046, 10, 3010047, 10, 3010048, 10, 3010049, 10, 3010199, 10, 3010050, 10, 3010051, 10, 3010052, 10};


    /* 1130 */   public static final int[] normalDrops = new int[]{4001009, 4001010, 4001011, 4001012, 4001013, 4001014, 4001021, 4001038, 4001039, 4001040, 4001041, 4001042, 4001043, 4001038, 4001039, 4001040, 4001041, 4001042, 4001043, 4001038, 4001039, 4001040, 4001041, 4001042, 4001043, 4000164, 2000000, 2000003, 2000004, 2000005, 4000019, 4000000, 4000016, 4000006, 2100121, 4000029, 4000064, 5110000, 4032181, 4006001, 4006000, 2050004, 3994102, 3994103, 3994104, 3994105, 2430007, 4000164, 2000000, 2000003, 2000004, 2000005, 4000019, 4000000, 4000016, 4000006, 2100121, 4000029, 4000064, 5110000, 4032181, 4006001, 4006000, 2050004, 3994102, 3994103, 3994104, 3994105, 2430007};


    /* 1200 */   public static final int[] rareDrops = new int[]{2049100, 2430144, 2028062, 2028061, 2290285, 2049301, 2049401, 2022326, 2049000, 2049001, 2049002};


    /* 1212 */   public static final int[] superDrops = new int[]{2040804, 2049400, 2028062, 2028061, 2430144, 2290285, 2049100};


    /* 1220 */   public static final int[] publicNpcIds = new int[]{9270035, 9070004, 9010022, 9071003, 9000087, 9000088, 9010000, 9000085, 9000018, 9000000};
    /* 1221 */   public static final String[] publicNpcs = new String[]{"#cUniversal NPC#", "Move to the #cBattle Square# to fight other players", "Move to a variety of #cparty quests#.", "Move to #cMonster Park# to team up to defeat monsters.", "Move to #cFree Market# to trade items with players.", "Move to #cArdentmill#, the crafting town.", "Check #cdrops# of any monster in the map.", "Review #cPokedex#.", "Review #cPokemon#.", "Join an #cevent# in progress."};

    public static final int ENTER_CASH_SHOP = 99998;

    public static final int CHECK_DAY = 99999;

    public static final int OMOK_SCORE = 122200;

    public static final int MATCH_SCORE = 122210;

    public static final int HP_ITEM = 122221;

    public static final int MP_ITEM = 122223;
    public static final int BUFF_SKILL = 122224;
    public static final int JAIL_TIME = 123455;
    public static final int JAIL_QUEST = 123456;
    public static final int REPORT_QUEST = 123457;
    public static final int ULT_EXPLORER = 111111;
    public static final int POKEMON_WINS = 122400;
    public static final int ENERGY_DRINK = 122500;
    public static final int HARVEST_TIME = 122501;
    public static final int PENDANT_SLOT = 122700;
    public static final int CURRENT_SET = 122800;
    public static final int BOSS_PQ = 150001;
    public static final int JAGUAR = 111112;
    public static final int DOJO = 150100;
    public static final int DOJO_RECORD = 150101;
    public static final int PARTY_REQUEST = 122900;
    public static final int PARTY_INVITE = 122901;
    public static final int ALLOW_PET_LOOT = 122902;
    public static final int 宠物自动喂食 = 12334;
    public static final int QUICK_SLOT = 123000;
    public static final int 精灵耳朵 = 7784;
    public static final int 重新领取勋章 = 29949;
    public static final int 林之灵耳朵尾巴 = 59300;
    public static final int 美洲豹管理 = 23008;
    public static final int 每日签到系统_签到记录 = 7;
    public static final int 每日签到系统_当前时间 = 9;
    /* 1259 */   public static final int[] allscrolllist = new int[]{2040002, 2040005, 2040016, 2040026, 2040031, 2040100, 2040105, 2040200, 2040205, 2040302, 2040310, 2040318, 2040323, 2040328, 2040329, 2040330, 2040331, 2040402, 2040412, 2040419, 2040422, 2040427, 2040502, 2040505, 2040514, 2040517, 2040534, 2040602, 2040612, 2040619, 2040622, 2040627, 2040702, 2040705, 2040708, 2040802, 2040805, 2040816, 2040825, 2040902, 2040915, 2040920, 2040925, 2040928, 2040933, 2041002, 2041005, 2041008, 2041011, 2041014, 2041017, 2041020, 2041023, 2041102, 2041105, 2041108, 2041111, 2041201, 2041206, 2041302, 2041305, 2041308, 2041311, 2043002, 2043008, 2043019, 2043102, 2043114, 2043202, 2043214, 2043302, 2043402, 2043702, 2043802, 2044002, 2044014, 2044015, 2044102, 2044114, 2044202, 2044214, 2044302, 2044314, 2044402, 2044414, 2044502, 2044602, 2044702, 2044802, 2044809, 2044902, 2045202, 2045302, 2048002, 2042102, 2042202, 2043602, 2042302, 2042402};


    /* 1360 */   public static final int[] needHyperStatLv = new int[]{0, 1, 2, 4, 8, 10, 15, 20, 25, 30, 35};
    /* 1361 */   public static final int[] eventCommonReward = new int[]{0, 10, 1, 10, 4, 5, 4170024, 25, 4280000, 5, 4280001, 6, 5490000, 5, 5490001, 6};


    /* 1372 */   public static final int[] eventUncommonReward = new int[]{1, 4, 2, 8, 3, 8, 5062000, 20, 2430082, 20, 2430092, 20, 2022459, 2, 2022460, 1, 2022462, 1, 2430117, 2, 2430118, 2, 2430201, 4, 2430228, 4, 2430283, 4, 2430136, 4, 2430476, 4, 2430511, 4, 2430206, 4, 2430199, 1, 1032062, 5, 5220000, 28, 2022459, 5, 2022460, 5, 2022461, 5, 2022462, 5, 2022463, 5, 5050000, 2, 4080100, 10, 4080000, 10, 2049100, 10, 2430144, 10, 2290285, 10, 2028062, 10, 2028061, 10, 2530000, 5, 2531000, 5, 2041100, 1, 2041101, 1, 2041102, 1, 2041103, 1, 2041104, 1, 2041105, 1, 2041106, 1, 2041107, 1, 2041108, 1, 2041109, 1, 2041110, 1, 2041111, 1, 2041112, 1, 2041113, 1, 2041114, 1, 2041115, 1, 2041116, 1, 2041117, 1, 2041118, 1, 2041119, 1, 2041300, 1, 2041301, 1, 2041302, 1, 2041303, 1, 2041304, 1, 2041305, 1, 2041306, 1, 2041307, 1, 2041308, 1, 2041309, 1, 2041310, 1, 2041311, 1, 2041312, 1, 2041313, 1, 2041314, 1, 2041315, 1, 2041316, 1, 2041317, 1, 2041318, 1, 2041319, 1, 2049200, 1, 2049201, 1, 2049202, 1, 2049203, 1, 2049204, 1, 2049205, 1, 2049206, 1, 2049207, 1, 2049208, 1, 2049209, 1, 2049210, 1, 2049211, 1};


    /* 1465 */   public static final int[] eventRareReward = new int[]{2049100, 5, 2430144, 5, 2290285, 5, 2028062, 5, 2028061, 5, 2530000, 2, 2531000, 2, 2049116, 1, 2049401, 10, 2049301, 20, 2049400, 3, 2340000, 1, 3010130, 5, 3010131, 5, 3010132, 5, 3010133, 5, 3010136, 5, 3010116, 5, 3010117, 5, 3010118, 5, 1112405, 1, 1112445, 1, 1022097, 1, 2040211, 1, 2040212, 1, 2049000, 2, 2049001, 2, 2049002, 2, 2049003, 2, 1012058, 2, 1012059, 2, 1012060, 2, 1012061, 2, 2022460, 4, 2022461, 3, 2022462, 4, 2022463, 3, 2040041, 1, 2040042, 1, 2040334, 1, 2040430, 1, 2040538, 1, 2040539, 1, 2040630, 1, 2040740, 1, 2040741, 1, 2040742, 1, 2040829, 1, 2040830, 1, 2040936, 1, 2041066, 1, 2041067, 1, 2043023, 1, 2043117, 1, 2043217, 1, 2043312, 1, 2043712, 1, 2043812, 1, 2044025, 1, 2044117, 1, 2044217, 1, 2044317, 1, 2044417, 1, 2044512, 1, 2044612, 1, 2044712, 1, 2046000, 1, 2046001, 1, 2046004, 1, 2046005, 1, 2046100, 1, 2046101, 1, 2046104, 1, 2046105, 1, 2046200, 1, 2046201, 1, 2046202, 1, 2046203, 1, 2046208, 1, 2046209, 1, 2046210, 1, 2046211, 1, 2046212, 1, 2046300, 1, 2046301, 1, 2046302, 1, 2046303, 1, 2047000, 1, 2047001, 1, 2047002, 1, 2047100, 1, 2047101, 1, 2047102, 1, 2047200, 1, 2047201, 1, 2047202, 1, 2047203, 1, 2047204, 1, 2047205, 1, 2047206, 1, 2047207, 1, 2047208, 1, 2047300, 1, 2047301, 1, 2047302, 1, 2047303, 1, 2047304, 1, 2047305, 1, 2047306, 1, 2047307, 1, 2047308, 1, 2047309, 1, 1112427, 5, 1112428, 5, 1112429, 5, 1012240, 10, 1022117, 10, 1032095, 10, 1112659, 10, 2070007, 10, 2330007, 5, 2070016, 5, 2070018, 5, 1152038, 1, 1152039, 1, 1152040, 1, 1152041, 1, 1122090, 1, 1122094, 1, 1122098, 1, 1122102, 1, 1012213, 1, 1012219, 1, 1012225, 1, 1012231, 1, 1012237, 1, 2070023, 5, 2070024, 5, 2330008, 5, 2003516, 5, 2003517, 1, 1132052, 1, 1132062, 1, 1132072, 1, 1132082, 1, 1112585, 1, 1072502, 1, 1072503, 1, 1072504, 1, 1072505, 1, 1072506, 1, 1052333, 1, 1052334, 1, 1052335, 1, 1052336, 1, 1052337, 1, 1082305, 1, 1082306, 1, 1082307, 1, 1082308, 1, 1082309, 1, 1003197, 1, 1003198, 1, 1003199, 1, 1003200, 1, 1003201, 1, 1662000, 1, 1662001, 1, 1672000, 1, 1672001, 1, 1672002, 1, 1112583, 1, 1032092, 1, 1132084, 1, 2430290, 1, 2430292, 1, 2430294, 1, 2430296, 1, 2430298, 1, 2430300, 1, 2430302, 1, 2430304, 1, 2430306, 1, 2430308, 1, 2430310, 1, 2430312, 1, 2430314, 1, 2430316, 1, 2430318, 1, 2430320, 1, 2430322, 1, 2430324, 1, 2430326, 1, 2430328, 1, 2430330, 1, 2430332, 1, 2430334, 1, 2430336, 1, 2430338, 1, 2430340, 1, 2430342, 1, 2430344, 1, 2430347, 1, 2430349, 1, 2430351, 1, 2430353, 1, 2430355, 1, 2430357, 1, 2430359, 1, 2430361, 1, 2430392, 1, 2430512, 1, 2430536, 1, 2430477, 1, 2430146, 1, 2430148, 1, 2430137, 1};


    /* 1686 */   public static final int[] eventSuperReward = new int[]{2022121, 10, 4031307, 50, 3010127, 10, 3010128, 10, 3010137, 10, 3010157, 10, 2049300, 10, 2040758, 10, 1442057, 10, 2049402, 10, 2049304, 1, 2049305, 1, 2040759, 7, 2040760, 5, 2040125, 10, 2040126, 10, 1012191, 5, 1112514, 1, 1112531, 1, 1112629, 1, 1112646, 1, 1112515, 1, 1112532, 1, 1112630, 1, 1112647, 1, 1112516, 1, 1112533, 1, 1112631, 1, 1112648, 1, 2040045, 10, 2040046, 10, 2040333, 10, 2040429, 10, 2040542, 10, 2040543, 10, 2040629, 10, 2040755, 10, 2040756, 10, 2040757, 10, 2040833, 10, 2040834, 10, 2041068, 10, 2041069, 10, 2043022, 12, 2043120, 12, 2043220, 12, 2043313, 12, 2043713, 12, 2043813, 12, 2044028, 12, 2044120, 12, 2044220, 12, 2044320, 12, 2044520, 12, 2044513, 12, 2044613, 12, 2044713, 12, 2044817, 12, 2044910, 12, 2046002, 5, 2046003, 5, 2046102, 5, 2046103, 5, 2046204, 10, 2046205, 10, 2046206, 10, 2046207, 10, 2046304, 10, 2046305, 10, 2046306, 10, 2046307, 10, 2040006, 2, 2040007, 2, 2040303, 2, 2040403, 2, 2040506, 2, 2040507, 2, 2040603, 2, 2040709, 2, 2040710, 2, 2040711, 2, 2040806, 2, 2040903, 2, 2040913, 2, 2041024, 2, 2041025, 2, 2044815, 2, 2044908, 2, 1152046, 1, 1152047, 1, 1152048, 1, 1152049, 1, 1122091, 1, 1122095, 1, 1122099, 1, 1122103, 1, 1012214, 1, 1012220, 1, 1012226, 1, 1012232, 1, 1012238, 1, 1032088, 1, 1032089, 1, 1032090, 1, 1032091, 1, 1132053, 1, 1132063, 1, 1132073, 1, 1132083, 1, 1112586, 1, 1112593, 1, 1112597, 1, 1662002, 1, 1662003, 1, 1672003, 1, 1672004, 1, 1672005, 1, 1092088, 1, 1092089, 1, 1092087, 1, 1102275, 1, 1102276, 1, 1102277, 1, 1102278, 1, 1102279, 1, 1102280, 1, 1102281, 1, 1102282, 1, 1102283, 1, 1102284, 1, 1082295, 1, 1082296, 1, 1082297, 1, 1082298, 1, 1082299, 1, 1082300, 1, 1082301, 1, 1082302, 1, 1082303, 1, 1082304, 1, 1072485, 1, 1072486, 1, 1072487, 1, 1072488, 1, 1072489, 1, 1072490, 1, 1072491, 1, 1072492, 1, 1072493, 1, 1072494, 1, 1052314, 1, 1052315, 1, 1052316, 1, 1052317, 1, 1052318, 1, 1052319, 1, 1052329, 1, 1052321, 1, 1052322, 1, 1052323, 1, 1003172, 1, 1003173, 1, 1003174, 1, 1003175, 1, 1003176, 1, 1003177, 1, 1003178, 1, 1003179, 1, 1003180, 1, 1003181, 1, 1302152, 1, 1302153, 1, 1312065, 1, 1312066, 1, 1322096, 1, 1322097, 1, 1332130, 1, 1332131, 1, 1342035, 1, 1342036, 1, 1372084, 1, 1372085, 1, 1382104, 1, 1382105, 1, 1402095, 1, 1402096, 1, 1412065, 1, 1412066, 1, 1422066, 1, 1422067, 1, 1432086, 1, 1432087, 1, 1442116, 1, 1442117, 1, 1452111, 1, 1452112, 1, 1462099, 1, 1462100, 1, 1472122, 1, 1472123, 1, 1482084, 1, 1482085, 1, 1492085, 1, 1492086, 1, 1532017, 1, 1532018, 1, 2430291, 1, 2430293, 1, 2430295, 1, 2430297, 1, 2430299, 1, 2430301, 1, 2430303, 1, 2430305, 1, 2430307, 1, 2430309, 1, 2430311, 1, 2430313, 1, 2430315, 1, 2430317, 1, 2430319, 1, 2430321, 1, 2430323, 1, 2430325, 1, 2430327, 1, 2430329, 1, 2430331, 1, 2430333, 1, 2430335, 1, 2430337, 1, 2430339, 1, 2430341, 1, 2430343, 1, 2430345, 1, 2430348, 1, 2430350, 1, 2430352, 1, 2430354, 1, 2430356, 1, 2430358, 1, 2430360, 1, 2430362, 1, 1012239, 1, 1122104, 1, 1112584, 1, 1032093, 1, 1132085, 1};


    /* 1938 */   public static final int[] tenPercent = new int[]{2040002, 2040005, 2040026, 2040031, 2040100, 2040105, 2040200, 2040205, 2040302, 2040310, 2040318, 2040323, 2040328, 2040329, 2040330, 2040331, 2040402, 2040412, 2040419, 2040422, 2040427, 2040502, 2040505, 2040514, 2040517, 2040534, 2040602, 2040612, 2040619, 2040622, 2040627, 2040702, 2040705, 2040708, 2040727, 2040802, 2040805, 2040816, 2040825, 2040902, 2040915, 2040920, 2040925, 2040928, 2040933, 2041002, 2041005, 2041008, 2041011, 2041014, 2041017, 2041020, 2041023, 2041058, 2041102, 2041105, 2041108, 2041111, 2041302, 2041305, 2041308, 2041311, 2043002, 2043008, 2043019, 2043102, 2043114, 2043202, 2043214, 2043302, 2043402, 2043702, 2043802, 2044002, 2044014, 2044015, 2044102, 2044114, 2044202, 2044214, 2044302, 2044314, 2044402, 2044414, 2044502, 2044602, 2044702, 2044802, 2044809, 2044902, 2045302, 2048002, 2048005};


    /* 2034 */   public static final int[] fishingReward = new int[]{0, 100, 1, 100, 1302021, 5, 1072238, 1, 1072239, 1, 2049100, 2, 2430144, 1, 2290285, 1, 2028062, 1, 2028061, 1, 2049301, 1, 2049401, 1, 1302000, 3, 1442011, 1, 4000517, 8, 4031627, 2, 4031628, 1, 4031630, 1, 4031631, 1, 4031632, 1, 4031633, 2, 4031634, 1, 4031635, 1, 4031636, 1, 4031637, 2, 4031638, 2, 4031639, 1, 4031640, 1, 4031641, 2, 4031642, 2, 4031643, 1, 4031644, 1, 4031645, 2, 4031646, 2, 4031647, 1, 4031648, 1, 4001187, 20, 4001188, 20, 4001189, 20, 4031629, 1};


    /* 2079 */   public static final int[] Equipments_Bonus = new int[]{1122017};
    /* 2080 */   private static final long[] exp = new long[276];
    /* 2081 */   private static final int[] closeness = new int[]{0, 1, 3, 6, 14, 31, 60, 108, 181, 287, 434, 632, 891, 1224, 1642, 2161, 2793, 3557, 4467, 5542, 6801, 8263, 9950, 11882, 14084, 16578, 19391, 22547, 26074, 30000};
    /* 2082 */   private static final int[] setScore = new int[]{0, 10, 100, 300, 600, 1000, 2000, 4000, 7000, 10000};
    /* 2083 */   private static final int[] cumulativeTraitExp = new int[]{0, 20, 46, 80, 124, 181, 255, 351, 476, 639, 851, 1084, 1340, 1622, 1932, 2273, 2648, 3061, 3515, 4014, 4563, 5128, 5710, 6309, 6926, 7562, 8217, 8892, 9587, 10303, 11040, 11788, 12547, 13307, 14089, 14883, 15689, 16507, 17337, 18179, 19034, 19902, 20783, 21677, 22584, 23505, 24440, 25399, 26362, 27339, 28331, 29338, 30360, 31397, 32450, 33519, 34604, 35705, 36823, 37958, 39110, 40279, 41466, 32671, 43894, 45135, 46395, 47674, 48972, 50289, 51626, 52967, 54312, 55661, 57014, 58371, 59732, 61097, 62466, 63839, 65216, 66597, 67982, 69371, 70764, 72161, 73562, 74967, 76376, 77789, 79206, 80627, 82052, 83481, 84914, 86351, 87792, 89237, 90686, 92139, 93596, 96000};


    /* 2094 */   private static final int[] mobHpVal = new int[]{0, 15, 20, 25, 35, 50, 65, 80, 95, 110, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 405, 435, 465, 495, 525, 580, 650, 720, 790, 900, 990, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2520, 2640, 2760, 2880, 3000, 3200, 3400, 3600, 3800, 4000, 4300, 4600, 4900, 5200, 5500, 5900, 6300, 6700, 7100, 7500, 8000, 8500, 9000, 9500, 10000, 11000, 12000, 13000, 14000, 15000, 17000, 19000, 21000, 23000, 25000, 27000, 29000, 31000, 33000, 35000, 37000, 39000, 41000, 43000, 45000, 47000, 49000, 51000, 53000, 55000, 57000, 59000, 61000, 63000, 65000, 67000, 69000, 71000, 73000, 75000, 77000, 79000, 81000, 83000, 85000, 89000, 91000, 93000, 95000, 97000, 99000, 101000, 103000, 105000, 107000, 109000, 111000, 113000, 115000, 118000, 120000, 125000, 130000, 135000, 140000, 145000, 150000, 155000, 160000, 165000, 170000, 175000, 180000, 185000, 190000, 195000, 200000, 205000, 210000, 215000, 220000, 225000, 230000, 235000, 240000, 250000, 260000, 270000, 280000, 290000, 300000, 310000, 320000, 330000, 340000, 350000, 360000, 370000, 380000, 390000, 400000, 410000, 420000, 430000, 440000, 450000, 460000, 470000, 480000, 490000, 500000, 510000, 520000, 530000, 550000, 570000, 590000, 610000, 630000, 650000, 670000, 690000, 710000, 730000, 750000, 770000, 790000, 810000, 830000, 850000, 870000, 890000, 910000};


    /* 2105 */   private static final int[] pvpExp = new int[]{0, 3000, 6000, 12000, 24000, 48000, 960000, 192000, 384000, 768000};

    /* 2107 */   private static final int[] guildExp = new int[]{0, 20000, 160000, 540000, 1280000, 2500000, 4320000, 6860000, 10240000, 14580000};

    /* 2109 */   private static final int[] mountExp = new int[]{0, 6, 25, 50, 105, 134, 196, 254, 263, 315, 367, 430, 543, 587, 679, 725, 897, 1146, 1394, 1701, 2247, 2543, 2898, 3156, 3313, 3584, 3923, 4150, 4305, 4550};

    /* 2111 */   private static final int[] professionExp = new int[]{0, 250, 600, 1050, 1600, 2250, 3000, 3850, 4900, 5850};

    /* 2113 */   public static int[] owlItems = new int[]{1332052, 2043301, 2040804, 2049100, 1402016, 1382060, 1082002, 2070006, 2290272, 2049301};


    /* 2116 */   public static List<Integer> sealedExpRate = new ArrayList<>();


    /* 2119 */   public static final int[] autoCompletQuest = new int[]{32510};
    public static final int 每日签到 = 16700;
    public static final int 自动念珠 = 1544;
    public static final int 联盟等级 = 18771;


    static {
        /* 2125 */
        exp[1] = 15L;
        /* 2126 */
        exp[2] = 34L;
        /* 2127 */
        exp[3] = 57L;
        /* 2128 */
        exp[4] = 92L;
        /* 2129 */
        exp[5] = 135L;
        /* 2130 */
        exp[6] = 372L;
        /* 2131 */
        exp[7] = 560L;
        /* 2132 */
        exp[8] = 840L;
        /* 2133 */
        exp[9] = 1242L;
        int i;
        /* 2134 */
        for (i = 10; i < 200; i++) {
            /* 2135 */
            exp[i] = ((i >= 10 && i < 15) || (i >= 30 && i < 35) || (i >= 60 && i < 65) || (i >= 100 && i < 105)) ? exp[i - 1] : (long) (exp[i - 1] * ((i < 40) ? 1.2D : ((i < 65) ? 1.08D : ((i < 75) ? 1.075D : ((i < 90) ? 1.07D : ((i < 140) ? 1.065D : ((i < 180) ? 1.0625D : 1.06D)))))));

        }
        /* 2137 */
        if (i == 200) {
            /* 2138 */
            exp[i] = 2207026470L;

        }
        /* 2140 */
        i = 201;

        do {
            /* 2142 */
            exp[i] = (long) (exp[i - 1] * 1.12D);
            /* 2143 */
            ++i;
            /* 2144 */
        } while (i <= 209);

        /* 2146 */
        i = 210;
        /* 2147 */
        exp[i] = (long) (exp[i - 1] * 2.75D);
        /* 2148 */
        i = 211;

        while (true) {
            /* 2150 */
            exp[i] = (long) (exp[i - 1] * 1.08D);
            /* 2151 */
            i++;
            /* 2152 */
            if (i > 219) {
                /* 2153 */
                i = 220;


                /* 2156 */
                exp[i] = calculate220to236exp(1361359625L, 13L);
                /* 2157 */
                exp[221] = calculate220to236exp(4221156349L, 13L);
                /* 2158 */
                exp[222] = calculate220to236exp(2928975612L, 14L);
                /* 2159 */
                exp[223] = calculate220to236exp(1786934204L, 15L);
                /* 2160 */
                exp[224] = calculate220to236exp(802539090L, 16L);
                /* 2161 */
                exp[225] = calculate220to236exp(3660408150L, 21L);
                /* 2162 */
                exp[226] = calculate220to236exp(2181082495L, 22L);
                /* 2163 */
                exp[227] = calculate220to236exp(786226089L, 23L);
                /* 2164 */
                exp[228] = calculate220to236exp(3773340306L, 23L);
                /* 2165 */
                exp[229] = calculate220to236exp(2555100653L, 24L);
                /* 2166 */
                exp[230] = calculate220to236exp(2497929159L, 40L);
                /* 2167 */
                exp[231] = calculate220to236exp(1688894283L, 41L);
                /* 2168 */
                exp[232] = calculate220to236exp(949578056L, 42L);
                /* 2169 */
                exp[233] = calculate220to236exp(281374849L, 43L);
                /* 2170 */
                exp[234] = calculate220to236exp(3980674221L, 43L);
                /* 2171 */
                exp[235] = calculate220to236exp(1387572516L, 63L);
                /* 2172 */
                exp[236] = (long) (exp[235] * 1.02D);








                /* 2181 */
                i = 237;

                while (true) {
                    /* 2183 */
                    exp[i] = (long) (exp[i - 1] * 1.02D);
                    /* 2184 */
                    i++;
                    /* 2185 */
                    if (i > 239) {
                        /* 2186 */
                        i = 240;
                        /* 2187 */
                        exp[i] = exp[i - 1] * 2L;
                        /* 2188 */
                        exp[i] = (long) (exp[i] * 1.01D);
                        /* 2189 */
                        i = 241;

                        while (true)
                            /* 2191 */ {
                            exp[i] = (long) (exp[i - 1] * 1.01D);
                            /* 2192 */
                            i++;
                            /* 2193 */
                            if (i > 249)
                                /* 2194 */ {
                                i = 250;
                                /* 2195 */
                                exp[i] = exp[i - 1] * 2L;
                                /* 2196 */
                                exp[i] = (long) (exp[i] * 1.01D);
                                /* 2197 */
                                i = 251;

                                do {
                                    /* 2199 */
                                    exp[i] = (long) (exp[i - 1] * 1.01D);
                                    /* 2200 */
                                    ++i;
                                    /* 2201 */
                                } while (i <= 259);

                                /* 2203 */
                                i = 260;
                                /* 2204 */
                                exp[i] = exp[i - 1] * 2L;
                                /* 2205 */
                                exp[i] = (long) (exp[i] * 1.01D);
                                /* 2206 */
                                i = 261;

                                do {
                                    /* 2208 */
                                    exp[i] = (long) (exp[i - 1] * 1.01D);
                                    /* 2209 */
                                    ++i;
                                    /* 2210 */
                                } while (i <= 269);

                                /* 2212 */
                                i = 270;
                                /* 2213 */
                                exp[i] = exp[i - 1] * 2L;
                                /* 2214 */
                                exp[i] = (long) (exp[i] * 1.01D);
                                /* 2215 */
                                i = 271;

                                while (true)
                                    /* 2217 */ {
                                    exp[i] = (long) (exp[i - 1] * 1.01D);
                                    /* 2218 */
                                    i++;
                                    /* 2219 */
                                    if (i > 274)
                                        /* 2220 */ {
                                        exp[275] = 0L;

                                        /* 2222 */
                                        initSealedExpRate();
                                        break;
                                    }
                                }
                                break;
                            }
                        }
                        break;

                    }

                }
                break;

            }
            /* 2226 */
        }
    }

    public static long calculate220to236exp(long a1, long a2) {
        return a1 + a2 * 4294967296L;
    }


    public static long getExpNeededForLevel(int level) {
        /* 2274 */
        if (level < 0 || level >= exp.length) {
            /* 2275 */
            return Long.MAX_VALUE;

        }
        /* 2277 */
        return exp[level];

    }


    public static int getGuildExpNeededForLevel(int level) {
        /* 2281 */
        if (level < 0 || level >= guildExp.length) {
            /* 2282 */
            return Integer.MAX_VALUE;

        }
        /* 2284 */
        return guildExp[level];

    }


    public static int getPVPExpNeededForLevel(int level) {
        /* 2288 */
        if (level < 0 || level >= pvpExp.length) {
            /* 2289 */
            return Integer.MAX_VALUE;

        }
        /* 2291 */
        return pvpExp[level];

    }


    public static int getClosenessNeededForLevel(int level) {
        /* 2295 */
        return closeness[level - 1];

    }


    public static int getMountExpNeededForLevel(int level) {
        /* 2299 */
        return mountExp[level - 1];

    }


    public static int getTraitExpNeededForLevel(int level) {
        /* 2303 */
        if (level < 0 || level >= cumulativeTraitExp.length) {
            /* 2304 */
            return Integer.MAX_VALUE;

        }
        /* 2306 */
        return cumulativeTraitExp[level];

    }


    public static int getSetExpNeededForLevel(int level) {
        /* 2310 */
        if (level < 0 || level >= setScore.length) {
            /* 2311 */
            return Integer.MAX_VALUE;

        }
        /* 2313 */
        return setScore[level];

    }


    public static int getMonsterHP(int level) {
        /* 2317 */
        if (level < 0 || level >= mobHpVal.length) {
            /* 2318 */
            return Integer.MAX_VALUE;

        }
        /* 2320 */
        return mobHpVal[level];

    }


    public static int getBookLevel(int level) {
        /* 2324 */
        return 5 * level * (level + 1);

    }


    public static int getTimelessRequiredEXP(int level) {
        /* 2328 */
        return 70 + level * 10;

    }


    public static int getReverseRequiredEXP(int level) {
        /* 2332 */
        return 60 + level * 5;

    }


    public static int getProfessionEXP(int level) {
        /* 2336 */
        if (level < 0 || level >= professionExp.length) {
            /* 2337 */
            return Integer.MAX_VALUE;

        }
        /* 2339 */
        return professionExp[level];

    }


    public static Double maxViewRangeSq() {
        /* 2346 */
        return Double.valueOf(Double.POSITIVE_INFINITY);

    }


    public static Double maxViewRangeSq_Half() {
        /* 2353 */
        return Double.valueOf(maxViewRangeSq().doubleValue() / 2.0D);

    }


    public static boolean isCustomQuest(int id) {
        /* 2357 */
        return (id > 99999);

    }


    public static long getTaxAmount(long meso) {
        /* 2361 */
        if (meso >= 100000000L)
            /* 2362 */ return Math.round(0.06D * meso);
        /* 2363 */
        if (meso >= 25000000L)
            /* 2364 */ return Math.round(0.05D * meso);
        /* 2365 */
        if (meso >= 10000000L)
            /* 2366 */ return Math.round(0.04D * meso);
        /* 2367 */
        if (meso >= 5000000L)
            /* 2368 */ return Math.round(0.03D * meso);
        /* 2369 */
        if (meso >= 1000000L)
            /* 2370 */ return Math.round(0.018D * meso);
        /* 2371 */
        if (meso >= 100000L) {
            /* 2372 */
            return Math.round(0.008D * meso);

        }
        /* 2374 */
        return 0L;

    }


    public static int EntrustedStoreTax(long meso) {
        /* 2378 */
        if (meso >= 100000000L)
            /* 2379 */ return (int) Math.round(0.03D * meso);
        /* 2380 */
        if (meso >= 25000000L)
            /* 2381 */ return (int) Math.round(0.025D * meso);
        /* 2382 */
        if (meso >= 10000000L)
            /* 2383 */ return (int) Math.round(0.02D * meso);
        /* 2384 */
        if (meso >= 5000000L)
            /* 2385 */ return (int) Math.round(0.015D * meso);
        /* 2386 */
        if (meso >= 1000000L)
            /* 2387 */ return (int) Math.round(0.009D * meso);
        /* 2388 */
        if (meso >= 100000L) {
            /* 2389 */
            return (int) Math.round(0.004D * meso);

        }
        /* 2391 */
        return 0;

    }


    public static byte gachaponRareItem(int id) {
        /* 2395 */
        switch (id) {


            case 1002776:

            case 1002777:

            case 1002778:

            case 1002779:

            case 1002780:

            case 1002790:

            case 1002791:

            case 1002792:

            case 1002793:

            case 1002794:

            case 1003280:

            case 1003281:

            case 1003282:

            case 1003283:

            case 1003284:

            case 1032031:

            case 1032084:

            case 1052155:

            case 1052156:

            case 1052157:

            case 1052158:

            case 1052159:

            case 1052160:

            case 1052161:

            case 1052162:

            case 1052163:

            case 1052164:

            case 1052374:

            case 1052375:

            case 1052376:

            case 1052377:

            case 1052378:

            case 1072355:

            case 1072356:

            case 1072357:

            case 1072358:

            case 1072359:

            case 1072361:

            case 1072362:

            case 1072363:

            case 1072364:

            case 1072365:

            case 1072544:

            case 1072545:

            case 1072546:

            case 1072547:

            case 1072548:

            case 1082234:

            case 1082235:

            case 1082236:

            case 1082237:

            case 1082238:

            case 1082239:

            case 1082240:

            case 1082241:

            case 1082242:

            case 1082243:

            case 1082328:

            case 1082329:

            case 1082330:

            case 1082331:

            case 1082332:

            case 1092057:

            case 1092058:

            case 1092059:

            case 1092074:

            case 1092079:

            case 1092084:

            case 1092087:

            case 1092088:

            case 1102172:

            case 1112439:

            case 1122011:

            case 1122012:

            case 1122085:

            case 1132012:

            case 1132013:

            case 1132040:

            case 1302081:

            case 1302086:

            case 1302147:

            case 1302173:

            case 1312037:

            case 1312038:

            case 1312062:

            case 1312072:

            case 1322060:

            case 1322061:

            case 1322090:

            case 1322107:

            case 1332073:

            case 1332074:

            case 1332075:

            case 1332076:

            case 1332120:

            case 1332125:

            case 1332148:

            case 1332149:

            case 1342011:

            case 1342012:

            case 1342033:

            case 1342040:

            case 1372044:

            case 1372045:

            case 1372078:

            case 1372100:

            case 1382057:

            case 1382059:

            case 1382099:

            case 1382124:

            case 1402037:

            case 1402046:

            case 1402047:

            case 1402090:

            case 1402111:

            case 1412033:

            case 1412034:

            case 1412062:

            case 1412071:

            case 1422037:

            case 1422038:

            case 1422063:

            case 1422073:

            case 1432047:

            case 1432049:

            case 1432081:

            case 1432099:

            case 1442063:

            case 1442067:

            case 1442111:

            case 1442136:

            case 1452057:

            case 1452059:

            case 1452106:

            case 1452129:

            case 1462050:

            case 1462051:

            case 1462091:

            case 1462118:

            case 1472068:

            case 1472071:

            case 1472117:

            case 1472141:

            case 1482023:

            case 1482024:

            case 1482079:

            case 1482102:

            case 1492023:

            case 1492025:

            case 1492079:

            case 1492101:

            case 1522015:

            case 1522016:

            case 1522020:

            case 1532015:

            case 1532016:

            case 1532037:

            case 1942002:

            case 1942004:

            case 1952002:

            case 1952004:

            case 1962002:

            case 1962004:

            case 1972002:

            case 1972004:

            case 2040006:

            case 2040007:

            case 2040303:

            case 2040403:

            case 2040506:

            case 2040507:

            case 2040603:

            case 2040709:

            case 2040710:

            case 2040711:

            case 2040806:

            case 2040903:

            case 2041024:

            case 2041025:

            case 2043003:

            case 2043103:

            case 2043203:

            case 2043303:

            case 2043703:

            case 2043803:

            case 2044003:

            case 2044019:

            case 2044103:

            case 2044203:

            case 2044303:

            case 2044403:

            case 2044503:

            case 2044603:

            case 2044703:

            case 2044815:

            case 2044908:

            case 2049000:

            case 2049001:

            case 2049002:

            case 2049100:

            case 2290096:

            case 2340000:
                /* 2607 */
                return 2;

        }

        /* 2610 */
        return 1;

    }


    public static boolean isReverseItem(int itemId) {
        /* 2614 */
        switch (itemId) {


            case 1002790:

            case 1002791:

            case 1002792:

            case 1002793:

            case 1002794:

            case 1052160:

            case 1052161:

            case 1052162:

            case 1052163:

            case 1052164:

            case 1072361:

            case 1072362:

            case 1072363:

            case 1072364:

            case 1072365:

            case 1082239:

            case 1082240:

            case 1082241:

            case 1082242:

            case 1082243:

            case 1302086:

            case 1312038:

            case 1322061:

            case 1332075:

            case 1332076:

            case 1342012:

            case 1372045:

            case 1382059:

            case 1402047:

            case 1412034:

            case 1422038:

            case 1432049:

            case 1442067:

            case 1452059:

            case 1462051:

            case 1472071:

            case 1482024:

            case 1492025:

            case 1522016:

            case 1532016:

            case 1942002:

            case 1952002:

            case 1962002:

            case 1972002:
                /* 2661 */
                return true;

        }
        /* 2663 */
        return false;

    }


    public static boolean isTimelessItem(int itemId) {
        /* 2668 */
        switch (itemId) {


            case 1002776:

            case 1002777:

            case 1002778:

            case 1002779:

            case 1002780:

            case 1032031:

            case 1052155:

            case 1052156:

            case 1052157:

            case 1052158:

            case 1052159:

            case 1072355:

            case 1072356:

            case 1072357:

            case 1072358:

            case 1072359:

            case 1082234:

            case 1082235:

            case 1082236:

            case 1082237:

            case 1082238:

            case 1092057:

            case 1092058:

            case 1092059:

            case 1102172:

            case 1122011:

            case 1122012:

            case 1302081:

            case 1312037:

            case 1322060:

            case 1332073:

            case 1332074:

            case 1342011:

            case 1372044:

            case 1382057:

            case 1402046:

            case 1412033:

            case 1422037:

            case 1432047:

            case 1442063:

            case 1452057:

            case 1462050:

            case 1472068:

            case 1482023:

            case 1492023:

            case 1522015:

            case 1532015:
                /* 2718 */
                return true;

        }
        /* 2720 */
        return false;

    }


    public static int Equipment_Bonus_EXP(int itemid) {
        /* 2725 */
        switch (itemid) {

            case 1122017:
                /* 2727 */
                return 10;

        }
        /* 2729 */
        return 0;

    }


    public static int getExpForLevel(int i, int itemId) {
        /* 2733 */
        if (isReverseItem(itemId))
            /* 2734 */ return getReverseRequiredEXP(i);
        /* 2735 */
        if (getMaxLevel(itemId) > 0) {
            /* 2736 */
            return getTimelessRequiredEXP(i);

        }
        /* 2738 */
        return 0;

    }


    public static int getMaxLevel(int itemId) {
        /* 2742 */
        Map<String, Map<String, Integer>> inc = MapleItemInformationProvider.getInstance().getEquipIncrements(itemId);
        /* 2743 */
        return (inc != null) ? inc.size() : 0;

    }


    public static int getStatChance() {
        /* 2747 */
        return 25;

    }


    public static MonsterStatus getStatFromWeapon(int itemid) {
        /* 2751 */
        switch (itemid) {

            case 1302109:

            case 1312041:

            case 1322067:

            case 1332083:

            case 1372048:

            case 1382064:

            case 1402055:

            case 1412037:

            case 1422041:

            case 1432052:

            case 1442073:

            case 1452064:

            case 1462058:

            case 1472079:

            case 1482035:
                /* 2767 */
                return MonsterStatus.MOB_STAT_Blind;

            case 1302108:

            case 1312040:

            case 1322066:

            case 1332082:

            case 1372047:

            case 1382063:

            case 1402054:

            case 1412036:

            case 1422040:

            case 1432051:

            case 1442072:

            case 1452063:

            case 1462057:

            case 1472078:

            case 1482036:
                /* 2783 */
                return MonsterStatus.MOB_STAT_Speed;

        }
        /* 2785 */
        return null;

    }


    public static boolean isSealedEquip(int itemid) {
        /* 2791 */
        for (int i : sealedEquip) {
            /* 2792 */
            if (itemid == i) {
                /* 2793 */
                return true;

            }

        }
        /* 2796 */
        return false;

    }


    public static int getXForStat(MonsterStatus stat) {
        /* 2800 */
        switch (stat) {

            case MOB_STAT_Blind:
                /* 2802 */
                return -70;

            case MOB_STAT_Speed:
                /* 2804 */
                return -50;

        }
        /* 2806 */
        return 0;

    }


    public static int getSkillForStat(MonsterStatus stat) {
        /* 2810 */
        switch (stat) {

            case MOB_STAT_Blind:
                /* 2812 */
                return 1111003;

            case MOB_STAT_Speed:
                /* 2814 */
                return 3121007;

        }
        /* 2816 */
        return 0;

    }


    public static int getLinkedMountItem(int sourceid) {
        /* 2820 */
        if (sourceid / 10000 == 8000) {
            /* 2821 */
            switch (sourceid) {

                case 80001120:
                    /* 2823 */
                    return 1992015;

                case 80001063:
                    /* 2825 */
                    return 1992000;

                case 80001064:
                    /* 2827 */
                    return 1992001;

                case 80001065:
                    /* 2829 */
                    return 1992002;

                case 80001066:
                    /* 2831 */
                    return 1992003;

                case 80001067:
                    /* 2833 */
                    return 1992004;

                case 80001068:
                    /* 2835 */
                    return 1992005;

                case 80001069:
                    /* 2837 */
                    return 1992006;

                case 80001070:
                    /* 2839 */
                    return 1992007;

                case 80001071:
                    /* 2841 */
                    return 1992008;

                case 80001072:
                    /* 2843 */
                    return 1992009;

                case 80001073:
                    /* 2845 */
                    return 1992010;

                case 80001074:
                    /* 2847 */
                    return 1992011;

                case 80001075:
                    /* 2849 */
                    return 1992012;

                case 80001076:
                    /* 2851 */
                    return 1992013;

                case 80001077:
                    /* 2853 */
                    return 1992014;

                case 80001330:
                    /* 2855 */
                    return 1992030;

                case 80001329:
                    /* 2857 */
                    return 1992029;

                case 80001403:
                    /* 2859 */
                    return 1992031;

                case 80001250:
                    /* 2861 */
                    return 1992020;

                case 80001410:
                    /* 2863 */
                    return 1992033;

                case 80001592:
                    /* 2865 */
                    return 1932297;

                case 80001003:
                    /* 2867 */
                    return 1932006;

                case 80001004:
                    /* 2869 */
                    return 1932007;

                case 80001005:
                    /* 2871 */
                    return 1932008;

                case 80001006:
                    /* 2873 */
                    return 1932009;

                case 80001008:
                    /* 2875 */
                    return 1932010;

                case 80001007:
                    /* 2877 */
                    return 1932011;

                case 80001011:
                    /* 2879 */
                    return 1932012;

                case 80001009:
                    /* 2881 */
                    return 1932013;

                case 80001010:
                    /* 2883 */
                    return 1932014;

                case 80001012:
                    /* 2885 */
                    return 1932022;

                case 80001013:
                    /* 2887 */
                    return 1932023;

                case 80001014:
                    /* 2889 */
                    return 1932025;

                case 80001025:
                    /* 2891 */
                    return 1932004;

                case 80001015:
                    /* 2893 */
                    return 1932026;

                case 80001016:
                    /* 2895 */
                    return 1932027;

                case 80001017:
                    /* 2897 */
                    return 1932028;

                case 80001018:
                    /* 2899 */
                    return 1932034;

                case 80001019:
                    /* 2901 */
                    return 1932035;

                case 80001020:
                    /* 2903 */
                    return 1932041;

                case 80001026:
                    /* 2905 */
                    return 1932005;

                case 80001021:
                    /* 2907 */
                    return 1932043;

                case 80001022:
                    /* 2909 */
                    return 1932044;

                case 80001023:
                    /* 2911 */
                    return 1932048;

                case 80001027:
                    /* 2913 */
                    return 1932049;

                case 80001028:
                    /* 2915 */
                    return 1932050;

                case 80001029:
                    /* 2917 */
                    return 1932053;

                case 80001030:
                    /* 2919 */
                    return 1932054;

                case 80001031:
                    /* 2921 */
                    return 1932055;

                case 80001032:
                    /* 2923 */
                    return 1932056;

                case 80001033:
                    /* 2925 */
                    return 1932057;

                case 80001037:
                    /* 2927 */
                    return 1932084;

                case 80001038:
                    /* 2929 */
                    return 1932088;

                case 80001039:
                    /* 2931 */
                    return 1932089;

                case 80001045:
                    /* 2933 */
                    return 1932017;

                case 80001046:
                    /* 2935 */
                    return 1932018;

                case 80001047:
                    /* 2937 */
                    return 1932019;

                case 80001048:
                    /* 2939 */
                    return 1932020;

                case 80001049:
                    /* 2941 */
                    return 1932021;

                case 80001050:
                    /* 2943 */
                    return 1932029;

                case 80001054:
                    /* 2945 */
                    return 1932058;

                case 80001055:
                    /* 2947 */
                    return 1932059;

                case 80001056:
                    /* 2949 */
                    return 1932061;

                case 80001057:
                    /* 2951 */
                    return 1932052;

                case 80001058:
                    /* 2953 */
                    return 1932060;

                case 80001059:
                    /* 2955 */
                    return 1932063;

                case 80001060:
                    /* 2957 */
                    return 1932064;

                case 80001061:
                    /* 2959 */
                    return 1932071;

                case 80001062:
                    /* 2961 */
                    return 1932081;

                case 80001078:
                    /* 2963 */
                    return 1932083;

                case 80001115:
                    /* 2965 */
                    return 1932065;

                case 80001116:
                    /* 2967 */
                    return 1932066;

                case 80001117:
                    /* 2969 */
                    return 1932072;

                case 80001118:
                    /* 2971 */
                    return 1932078;

                case 80001119:
                    /* 2973 */
                    return 1932080;

                case 80001121:
                    /* 2975 */
                    return 1932092;

                case 80001112:
                    /* 2977 */
                    return 1932097;

                case 80001113:
                    /* 2979 */
                    return 1932098;

                case 80001114:
                    /* 2981 */
                    return 1932099;

                case 80001044:
                    /* 2983 */
                    return 1932090;

                case 80001082:
                    /* 2985 */
                    return 1932093;

                case 80001083:
                    /* 2987 */
                    return 1932094;

                case 80001084:
                    /* 2989 */
                    return 1932095;

                case 80001090:
                    /* 2991 */
                    return 1932096;

                case 80001137:
                    /* 2993 */
                    return 1932110;

                case 80001144:
                    /* 2995 */
                    return 1932113;

                case 80001148:
                    /* 2997 */
                    return 1932114;

                case 80001149:
                    /* 2999 */
                    return 1932115;

                case 80001163:
                    /* 3001 */
                    return 1932118;

                case 80001173:
                    /* 3003 */
                    return 1932120;

                case 80001174:
                    /* 3005 */
                    return 1932121;

                case 80001175:
                    /* 3007 */
                    return 1932122;

                case 80001183:
                    /* 3009 */
                    return 1932126;

                case 80001184:
                    /* 3011 */
                    return 1932127;

                case 80001185:
                    /* 3013 */
                    return 1932128;

                case 80001186:
                    /* 3015 */
                    return 1932129;

                case 80001187:
                    /* 3017 */
                    return 1932130;

                case 80001188:
                    /* 3019 */
                    return 1932131;

                case 80001189:
                    /* 3021 */
                    return 1932132;

                case 80001190:
                    /* 3023 */
                    return 1932133;

                case 80001191:
                    /* 3025 */
                    return 1932038;

                case 80001192:
                    /* 3027 */
                    return 1932135;

                case 80001193:
                    /* 3029 */
                    return 1932136;

                case 80001194:
                    /* 3031 */
                    return 1932137;

                case 80001195:
                    /* 3033 */
                    return 1932138;

                case 80001196:
                    /* 3035 */
                    return 1932139;

                case 80001198:
                    /* 3037 */
                    return 1932140;

                case 80001199:
                    /* 3039 */
                    return 1932141;

                case 80001228:
                    /* 3041 */
                    return 1932148;

                case 80001240:
                    /* 3043 */
                    return 1932154;

                case 80001220:
                    /* 3045 */
                    return 1932143;

                case 80001221:
                    /* 3047 */
                    return 1932144;

                case 80001222:
                    /* 3049 */
                    return 1932145;

                case 80001223:
                    /* 3051 */
                    return 1932146;

                case 80001224:
                    /* 3053 */
                    return 1932147;

                case 80001241:
                    /* 3055 */
                    return 1932152;

                case 80001237:
                    /* 3057 */
                    return 1932153;

                case 80001243:
                    /* 3059 */
                    return 1932156;

                case 80001244:
                    /* 3061 */
                    return 1932157;

                case 80001245:
                    /* 3063 */
                    return 1932158;

                case 80001246:
                    /* 3065 */
                    return 1932159;

                case 80001261:
                    /* 3067 */
                    return 1932164;

                case 80001277:
                    /* 3069 */
                    return 1932165;

                case 80001285:
                    /* 3071 */
                    return 1932167;

                case 80001287:
                    /* 3073 */
                    return 1932168;

                case 80001288:
                    /* 3075 */
                    return 1932169;

                case 80001293:
                    /* 3077 */
                    return 1932174;

                case 80001331:
                    /* 3079 */
                    return 1932199;

                case 80001388:
                    /* 3081 */
                    return 1932214;

                case 80001586:
                    /* 3083 */
                    return 1932279;

                case 80001124:
                    /* 3085 */
                    return 1932105;

                case 80001127:
                    /* 3087 */
                    return 1932108;

                case 80001131:
                    /* 3089 */
                    return 1932109;

                case 80001142:
                    /* 3091 */
                    return 1932112;

                case 80001181:
                    /* 3093 */
                    return 1932091;

                case 80001238:
                    /* 3095 */
                    return 1932155;

                case 80001208:
                    /* 3097 */
                    return 1932142;

                case 80001229:
                    /* 3099 */
                    return 1932150;

                case 80001230:
                    /* 3101 */
                    return 1932151;

                case 80001166:
                    /* 3103 */
                    return 1932119;

                case 80001335:
                    /* 3105 */
                    return 1932213;

                case 80001292:
                    /* 3107 */
                    return 1932173;

                case 80001290:
                    /* 3109 */
                    return 1932171;

                case 80001278:
                    /* 3111 */
                    return 1932166;

                case 80001260:
                    /* 3113 */
                    return 1932163;

                case 80011138:
                    /* 3115 */
                    return 1932291;

                case 80001156:
                    /* 3117 */
                    return 1932116;

                case 80001179:
                    /* 3119 */
                    return 1932123;

                case 80001157:
                    /* 3121 */
                    return 1932117;

                case 80001180:
                    /* 3123 */
                    return 1932124;

                case 20021160:
                    /* 3125 */
                    return 1932086;

                case 20021161:
                    /* 3127 */
                    return 1932087;

                case 30011109:
                    /* 3129 */
                    return 1932051;

                case 30011159:
                    /* 3131 */
                    return 1932085;

                case 1204:
                    /* 3133 */
                    return 1932102;

                case 1203:
                    /* 3135 */
                    return 1932103;

                case 20031160:
                    /* 3137 */
                    return 1932106;

                case 20031161:
                    /* 3139 */
                    return 1932107;

            }
            /* 3141 */
            switch (sourceid % 1000) {

                case 1:

                case 24:

                case 25:
                    /* 3145 */
                    return 1018;

                case 2:

                case 26:
                    /* 3148 */
                    return 1019;

                case 3:
                    /* 3150 */
                    return 1025;

                case 4:

                case 5:

                case 6:

                case 7:

                case 8:
                    /* 3156 */
                    return sourceid % 1000 + 1023;

                case 9:

                case 10:

                case 11:
                    /* 3160 */
                    return sourceid % 1000 + 1024;

                case 12:
                    /* 3162 */
                    return 1042;

                case 13:
                    /* 3164 */
                    return 1044;

                case 14:
                    /* 3166 */
                    return 1049;

                case 15:

                case 16:

                case 17:
                    /* 3170 */
                    return sourceid % 1000 + 1036;

                case 18:

                case 19:
                    /* 3173 */
                    return sourceid % 1000 + 1045;

                case 20:
                    /* 3175 */
                    return 1072;

                case 21:
                    /* 3177 */
                    return 1084;

                case 22:
                    /* 3179 */
                    return 1089;

                case 23:
                    /* 3181 */
                    return 1106;

                case 29:
                    /* 3183 */
                    return 1151;

                case 30:

                case 50:
                    /* 3186 */
                    return 1054;

                case 33:
                    /* 3188 */
                    return 1932057;

                case 37:
                    /* 3190 */
                    return 1932084;

                case 38:
                    /* 3192 */
                    return 1932088;

                case 39:
                    /* 3194 */
                    return 1932089;

                case 31:

                case 51:
                    /* 3197 */
                    return 1069;

                case 32:
                    /* 3199 */
                    return 1138;

                case 45:

                case 46:

                case 47:

                case 48:

                case 49:
                    /* 3205 */
                    return sourceid % 1000 + 1009;

                case 52:
                    /* 3207 */
                    return 1070;

                case 53:
                    /* 3209 */
                    return 1071;

                case 54:
                    /* 3211 */
                    return 1096;

                case 55:
                    /* 3213 */
                    return 1101;

                case 56:
                    /* 3215 */
                    return 1102;

                case 58:
                    /* 3217 */
                    return 1118;

                case 59:
                    /* 3219 */
                    return 1121;

                case 60:
                    /* 3221 */
                    return 1122;

                case 61:
                    /* 3223 */
                    return 1129;

                case 62:
                    /* 3225 */
                    return 1139;

                case 63:

                case 64:

                case 65:

                case 66:

                case 67:

                case 68:

                case 69:

                case 70:

                case 71:

                case 72:

                case 73:

                case 74:

                case 75:

                case 76:

                case 77:

                case 78:
                    /* 3242 */
                    return sourceid % 1000 + 1080;

                case 82:
                    /* 3244 */
                    return 1932093;

                case 83:
                    /* 3246 */
                    return 1932094;

                case 84:
                    /* 3248 */
                    return 1932095;

                case 85:

                case 86:

                case 87:
                    /* 3252 */
                    return sourceid % 1000 + 928;

                case 88:
                    /* 3254 */
                    return 1065;

                case 90:
                    /* 3256 */
                    return 1932096;

                case 27:
                    /* 3258 */
                    return 1932049;

                case 28:
                    /* 3260 */
                    return 1932050;

                case 111:
                    /* 3262 */
                    return 1932038;

                case 112:
                    /* 3264 */
                    return 1932097;

                case 113:
                    /* 3266 */
                    return 1932098;

                case 114:
                    /* 3268 */
                    return 1932099;

                case 115:
                    /* 3270 */
                    return 1932065;

                case 116:
                    /* 3272 */
                    return 1932066;

                case 117:
                    /* 3274 */
                    return 1932072;

                case 118:
                    /* 3276 */
                    return 1932078;

                case 119:
                    /* 3278 */
                    return 1932080;

                case 120:
                    /* 3280 */
                    return 1992015;

                case 121:
                    /* 3282 */
                    return 1932092;

                case 124:
                    /* 3284 */
                    return 1932105;

                case 142:
                    /* 3286 */
                    return 1932112;

                case 181:
                    /* 3288 */
                    return 1932091;

                case 194:
                    /* 3290 */
                    return 1932137;

                case 195:
                    /* 3292 */
                    return 1932138;

                case 196:
                    /* 3294 */
                    return 1932139;

                case 198:
                    /* 3296 */
                    return 1932140;

                case 199:
                    /* 3298 */
                    return 1932141;

                case 220:
                    /* 3300 */
                    return 1932143;

                case 221:
                    /* 3302 */
                    return 1932144;

                case 228:
                    /* 3304 */
                    return 1932148;

                case 237:
                    /* 3306 */
                    return 1932153;

                case 240:
                    /* 3308 */
                    return 1932154;

                case 243:
                    /* 3310 */
                    return 1932156;

                case 245:
                    /* 3312 */
                    return 1932158;

                case 330:
                    /* 3314 */
                    return 1992030;

                case 410:
                    /* 3316 */
                    return 1992033;

            }



            /* 3321 */
            return 0;

        }


        /* 3325 */
        return 0;

    }


    public static int getMountItem(int sourceid, MapleCharacter chr) {
        /* 3329 */
        switch (sourceid) {

            case 33001001:
                /* 3331 */
                if (chr == null) {
                    /* 3332 */
                    return 1932015;

                }
                /* 3334 */
                switch (chr.getIntNoRecord(111112)) {

                    case 20:
                        /* 3336 */
                        return 1932030;

                    case 30:
                        /* 3338 */
                        return 1932031;

                    case 40:
                        /* 3340 */
                        return 1932032;

                    case 50:
                        /* 3342 */
                        return 1932033;

                    case 60:
                        /* 3344 */
                        return 1932036;

                    case 70:
                        /* 3346 */
                        return 1932100;

                    case 80:
                        /* 3348 */
                        return 1932149;

                    case 90:
                        /* 3350 */
                        return 1932215;

                }
                /* 3352 */
                return 1932015;

            case 35001002:

            case 35111003:

            case 35120000:
                /* 3356 */
                return 1932016;

            case 30011109:
                /* 3358 */
                return 1932051;

            case 30011159:
                /* 3360 */
                return 1932085;

            case 22171080:
                /* 3362 */
                return 1939007;

            case 20021160:
                /* 3364 */
                return 1932086;

            case 20021161:
                /* 3366 */
                return 1932087;

            case 20031160:
                /* 3368 */
                return 1932106;

            case 20031161:
                /* 3370 */
                return 1932107;

        }
        /* 3372 */
        Skill skil = SkillFactory.getSkill(sourceid);
        /* 3373 */
        if (skil != null && skil.getTamingMob() > 0) {
            /* 3374 */
            return skil.getTamingMob();

        }
        /* 3376 */
        if (skil != null && skil.getVehicleID() > 0) {
            /* 3377 */
            return skil.getVehicleID();

        }
        /* 3379 */
        int link = getLinkedMountItem(sourceid);
        /* 3380 */
        if (link > 0) {
            /* 3381 */
            if (link < 10000) {
                /* 3382 */
                return getMountItem(link, chr);

            }
            /* 3384 */
            return link;

        }

        /* 3387 */
        if (JobConstants.is新手职业(sourceid / 10000)) {
            /* 3388 */
            switch (sourceid % 10000) {

                case 1013:

                case 1046:
                    /* 3391 */
                    return 1932001;

                case 1015:

                case 1048:
                    /* 3394 */
                    return 1932002;

                case 1016:

                case 1017:

                case 1027:
                    /* 3398 */
                    return 1932007;

                case 1018:
                    /* 3400 */
                    return 1932003;

                case 1019:
                    /* 3402 */
                    return 1932005;

                case 1025:
                    /* 3404 */
                    return 1932006;

                case 1028:
                    /* 3406 */
                    return 1932008;

                case 1029:
                    /* 3408 */
                    return 1932009;

                case 1030:
                    /* 3410 */
                    return 1932011;

                case 1031:
                    /* 3412 */
                    return 1932010;

                case 1033:
                    /* 3414 */
                    return 1932013;

                case 1034:
                    /* 3416 */
                    return 1932014;

                case 1035:
                    /* 3418 */
                    return 1932012;

                case 1036:
                    /* 3420 */
                    return 1932017;

                case 1037:
                    /* 3422 */
                    return 1932018;

                case 1038:
                    /* 3424 */
                    return 1932019;

                case 1039:
                    /* 3426 */
                    return 1932020;

                case 1040:
                    /* 3428 */
                    return 1932021;

                case 1042:
                    /* 3430 */
                    return 1932022;

                case 1044:
                    /* 3432 */
                    return 1932023;


                case 1049:
                    /* 3436 */
                    return 1932025;

                case 1050:
                    /* 3438 */
                    return 1932004;

                case 1051:
                    /* 3440 */
                    return 1932026;

                case 1052:
                    /* 3442 */
                    return 1932027;

                case 1053:
                    /* 3444 */
                    return 1932028;

                case 1054:
                    /* 3446 */
                    return 1932029;

                case 1063:
                    /* 3448 */
                    return 1932034;

                case 1064:
                    /* 3450 */
                    return 1932035;

                case 1065:
                    /* 3452 */
                    return 1932037;

                case 1069:
                    /* 3454 */
                    return 1932038;

                case 1070:
                    /* 3456 */
                    return 1932039;

                case 1071:
                    /* 3458 */
                    return 1932040;

                case 1072:
                    /* 3460 */
                    return 1932041;

                case 1084:
                    /* 3462 */
                    return 1932043;

                case 1089:
                    /* 3464 */
                    return 1932044;

                case 1096:
                    /* 3466 */
                    return 1932045;

                case 1101:
                    /* 3468 */
                    return 1932046;

                case 1102:
                    /* 3470 */
                    return 1932047;

                case 1106:
                    /* 3472 */
                    return 1932048;

                case 1115:
                    /* 3474 */
                    return 1932052;

                case 1118:
                    /* 3476 */
                    return 1932060;

                case 1121:
                    /* 3478 */
                    return 1932063;

                case 1122:
                    /* 3480 */
                    return 1932064;

                case 1123:
                    /* 3482 */
                    return 1932065;

                case 1124:
                    /* 3484 */
                    return 1932066;

                case 1129:
                    /* 3486 */
                    return 1932071;

                case 1130:
                    /* 3488 */
                    return 1932072;

                case 1136:
                    /* 3490 */
                    return 1932078;

                case 1138:
                    /* 3492 */
                    return 1932080;

                case 1139:
                    /* 3494 */
                    return 1932081;


                case 1143:

                case 1144:

                case 1145:

                case 1146:

                case 1147:

                case 1148:

                case 1149:

                case 1150:

                case 1151:

                case 1152:

                case 1153:

                case 1154:

                case 1155:

                case 1156:

                case 1157:
                    /* 3511 */
                    return 1992000 + sourceid % 10000 - 1143;

            }

        }
        /* 3514 */
        return 0;

    }


    public static int getPotentialStats(int potentialID) {
        /* 3518 */
        if (potentialID >= 40000)
            /* 3519 */ return 20;
        /* 3520 */
        if (potentialID >= 30000)
            /* 3521 */ return 19;
        /* 3522 */
        if (potentialID >= 20000)
            /* 3523 */ return 18;
        /* 3524 */
        if (potentialID >= 1) {
            /* 3525 */
            return 17;

        }
        /* 3527 */
        return -1;

    }


    public static boolean isBlockedPotential(Equip equip, int potentialID, boolean b2, boolean b3) {
        /* 3531 */
        if (MapleItemInformationProvider.getInstance().isSuperiorEquip(equip.getItemId())) ;


        /* 3534 */
        boolean b4 = false;
        /* 3535 */
        int n2 = potentialID / 1000 % 10;
        /* 3536 */
        if ((b2 && n2 != 2) || (!b2 && n2 == 2)) {
            /* 3537 */
            return false;

        }
        /* 3539 */
        if ((potentialID % 1000 <= 14 || potentialID % 1000 == 81) && potentialID < 60000 && b3 && potentialID / 1000 != 31) {
            /* 3540 */
            return false;

        }
        /* 3542 */
        int n3 = potentialID % 1000;
        /* 3543 */
        return (potentialID < 60000);

    }


    public static boolean potentialIDFits(int potentialID, int newstate, int i) {
        /* 3558 */
        if (newstate == 20) {
            /* 3559 */
            return (i == 1 || Randomizer.nextInt(20) == 0) ? ((potentialID >= 40000)) : ((potentialID >= 30000 && potentialID < 60000));

        }
        /* 3561 */
        if (newstate == 19) {
            /* 3562 */
            return (i == 1 || Randomizer.nextInt(20) == 0) ? ((potentialID >= 30000 && potentialID < 40000)) : ((potentialID >= 20000 && potentialID < 30000));

        }
        /* 3564 */
        if (newstate == 18) {
            /* 3565 */
            return (i == 1 || Randomizer.nextInt(20) == 0) ? ((potentialID >= 20000 && potentialID < 30000)) : ((potentialID >= 10000 && potentialID < 20000));

        }
        /* 3567 */
        return (newstate == 17 && ((Randomizer.nextInt(20) == 0) ? (potentialID >= 10000 && potentialID < 20000) : (potentialID < 10000)));

    }


    public static boolean optionTypeFits(int optionType, int itemId) {
        /* 3571 */
        switch (optionType) {

            case 10:
                /* 3573 */
                return (ItemConstants.isWeapon(itemId) || ItemConstants.isShield(itemId) || ItemConstants.isSubWeapon(itemId) || ItemConstants.is双刀副手(itemId) || ItemConstants.is徽章(itemId) || ItemConstants.is纹章(itemId));

            case 11:
                /* 3575 */
                return !ItemConstants.isWeapon(itemId);

            case 20:
                /* 3577 */
                return (!ItemConstants.isWeapon(itemId) || !ItemConstants.is饰品(itemId));

            case 21:
                /* 3579 */
                return ItemConstants.isPetEquip(itemId);

            case 40:
                /* 3581 */
                return ItemConstants.isAccessory(itemId);

            case 51:
                /* 3583 */
                return ItemConstants.isCap(itemId);

            case 52:
                /* 3585 */
                return ItemConstants.isCape(itemId);

            case 53:
                /* 3587 */
                return (ItemConstants.isCoat(itemId) || ItemConstants.isLongcoat(itemId) || ItemConstants.isPants(itemId));

            case 54:
                /* 3589 */
                return ItemConstants.isGlove(itemId);

            case 55:
                /* 3591 */
                return ItemConstants.isShoes(itemId);

            case 90:
                /* 3593 */
                return false;

        }
        /* 3595 */
        return true;

    }


    public static boolean isAboveA(int opID) {
        /* 3600 */
        return (opID > 50000 || opID < 10001);

    }


    public static short a(int n, Equip equip) {
        /* 3604 */
        short n2 = 0;
        /* 3605 */
        for (int i = 0; i < ItemConstants.灵魂结晶.length; i++) {
            /* 3606 */
            if (ItemConstants.灵魂结晶[i] == n) {
                /* 3607 */
                n2 = ItemConstants.灵魂结晶技能[i];

                break;

            }

        }
        /* 3611 */
        if (n2 == 0) {
            /* 3612 */
            MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
            /* 3613 */
            int n3 = ii.getReqLevel(equip.getItemId()) / 10;
            int j;
            /* 3614 */
            for (j = 0; j == 0; j = 1) {
                /* 3615 */
                List<List<StructItemOption>> list = new LinkedList<>(ii.getAllPotentialInfo().values());
                /* 3616 */
                StructItemOption itemOption = ((List<StructItemOption>) list.get(Randomizer.nextInt(list.size()))).get(n3);
                /* 3617 */
                if (itemOption != null && itemOption.reqLevel / 10 <= n3 && optionTypeFits(itemOption.optionType, equip.getItemId()) && potentialIDFits(itemOption.opID, 19, 1) && isBlockedPotential(equip, itemOption.opID, false, false)) {
                    /* 3618 */
                    n2 = (short) itemOption.opID;

                }

            }

        }
        /* 3622 */
        return n2;

    }


    public static boolean optionTypeFitsX(int potentialID, int itemId) {
        /* 3626 */
        switch (potentialID) {

            case 60001:

            case 60003:

            case 60008:

            case 60009:

            case 60010:

            case 60011:

            case 60012:

            case 60013:

            case 60014:

            case 60015:

            case 60016:

            case 60017:

            case 60018:

            case 60019:

            case 60020:

            case 60021:

            case 60023:

            case 60024:

            case 60025:

            case 60026:

            case 60027:
                /* 3648 */
                return (ItemConstants.isWeapon(itemId) || ItemConstants.isSubWeapon(itemId));

            case 60002:

            case 60004:

            case 60005:
                /* 3652 */
                return true;

        }
        /* 3654 */
        return true;

    }


    public static boolean isMountItemAvailable(int mountid, int jobid) {
        /* 3659 */
        if (jobid != 900 && mountid / 10000 == 190) {
            /* 3660 */
            switch (mountid) {

                case 1902000:

                case 1902001:

                case 1902002:
                    /* 3664 */
                    return JobConstants.is冒险家(jobid);

                case 1902005:

                case 1902006:

                case 1902007:
                    /* 3668 */
                    return JobConstants.is骑士团(jobid);

                case 1902015:

                case 1902016:

                case 1902017:

                case 1902018:
                    /* 3673 */
                    return JobConstants.is战神(jobid);

                case 1902040:

                case 1902041:

                case 1902042:
                    /* 3677 */
                    return JobConstants.is龙神(jobid);

            }
            /* 3679 */
            if (JobConstants.is反抗者(jobid)) {
                /* 3680 */
                return false;

            }

        }
        /* 3683 */
        return (mountid / 10000 == 190);

    }


    public static int getExpRate_Quest(int level) {
        /* 3691 */
        return 1;

    }


    public static int getCustomReactItem(int rid, int original) {
        /* 3695 */
        if (rid == 2008006) {
            /* 3696 */
            return Calendar.getInstance().get(7) + 4001055;

        }

        /* 3699 */
        return original;

    }


    public static boolean isForceRespawn(int mapid) {
        /* 3704 */
        switch (mapid) {

            case 103000800:

            case 925100100:
                /* 3707 */
                return true;

        }
        /* 3709 */
        return (mapid / 100000 == 9800 && (mapid % 10 == 1 || mapid % 1000 == 100));

    }


    public static int getFishingTime(boolean vip, boolean gm) {
        /* 3714 */
        return gm ? 1000 : (vip ? 30000 : 60000);

    }


    public static int getCustomSpawnID(int summoner, int def) {
        /* 3718 */
        switch (summoner) {

            case 9400589:

            case 9400748:
                /* 3721 */
                return 9400706;

        }
        /* 3723 */
        return def;

    }


    public static boolean canForfeit(int questid) {
        /* 3728 */
        switch (questid) {

            case 20000:

            case 20010:

            case 20015:

            case 20020:
                /* 3733 */
                return false;

        }
        /* 3735 */
        return true;

    }


    public static double getAttackRange(MapleStatEffect def, int rangeInc) {
        /* 3740 */
        double defRange = (400.0D + rangeInc) * (400.0D + rangeInc);
        /* 3741 */
        if (def != null) {
            /* 3742 */
            defRange += def.getMaxDistanceSq() + (def.getRange() * def.getRange());

        }




        /* 3748 */
        return defRange + 120000.0D;

    }


    public static double getAttackRange(Point lt, Point rb) {
        /* 3752 */
        double defRange = 160000.0D;
        /* 3753 */
        int maxX = Math.max(Math.abs((lt == null) ? 0 : lt.x), Math.abs((rb == null) ? 0 : rb.x));
        /* 3754 */
        int maxY = Math.max(Math.abs((lt == null) ? 0 : lt.y), Math.abs((rb == null) ? 0 : rb.y));
        /* 3755 */
        defRange += (maxX * maxX + maxY * maxY);




        /* 3760 */
        return defRange + 120000.0D;

    }


    public static boolean isNoSpawn(int mapID) {
        /* 3764 */
        return (mapID == 809040100 || mapID == 910150210 || mapID == 925020010 || mapID == 925020011 || mapID == 925020012 || mapID == 925020013 || mapID == 925020014 || mapID == 980010000 || mapID == 980010100 || mapID == 980010200 || mapID == 980010300 || mapID == 980010020);

    }


    public static int getOverrideNpc(int npcID) {
        /* 3779 */
        int ret = npcID;
        /* 3780 */
        switch (ret) {

            case 1033221:
                /* 3782 */
                ret = 9330370;

                break;

        }
        /* 3785 */
        return ret;

    }


    public static boolean isDojo(int mapId) {
        /* 3789 */
        return (mapId >= 925020100 && mapId <= 925023814);

    }


    public static int getPartyPlayHP(int mobID) {
        /* 3793 */
        switch (mobID) {

            case 4250000:
                /* 3795 */
                return 836000;

            case 4250001:
                /* 3797 */
                return 924000;

            case 5250000:
                /* 3799 */
                return 1100000;

            case 5250001:
                /* 3801 */
                return 1276000;

            case 5250002:
                /* 3803 */
                return 1452000;

            case 9400661:
                /* 3805 */
                return 15000000;

            case 9400660:
                /* 3807 */
                return 30000000;

            case 9400659:
                /* 3809 */
                return 45000000;

            case 9400658:
                /* 3811 */
                return 20000000;

        }
        /* 3813 */
        return 0;

    }


    public static int getPartyPlayEXP(int mobID) {
        /* 3817 */
        switch (mobID) {

            case 4250000:
                /* 3819 */
                return 5770;

            case 4250001:
                /* 3821 */
                return 6160;

            case 5250000:
                /* 3823 */
                return 7100;

            case 5250001:
                /* 3825 */
                return 7975;

            case 5250002:
                /* 3827 */
                return 8800;

            case 9400661:
                /* 3829 */
                return 40000;

            case 9400660:
                /* 3831 */
                return 70000;

            case 9400659:
                /* 3833 */
                return 90000;

            case 9400658:
                /* 3835 */
                return 50000;

        }
        /* 3837 */
        return 0;

    }


    public static int getPartyPlay(int mapId) {
        /* 3841 */
        switch (mapId) {


            case 300010000:

            case 300010100:

            case 300010200:

            case 300010300:

            case 300010400:

            case 300020000:

            case 300020100:

            case 300020200:

            case 300030000:

            case 683070400:

            case 683070401:

            case 683070402:
                /* 3855 */
                return 25;

        }
        /* 3857 */
        return 0;

    }


    public static int getPartyPlay(int mapId, int def) {
        /* 3861 */
        int dd = getPartyPlay(mapId);
        /* 3862 */
        if (dd > 0) {
            /* 3863 */
            return dd;

        }
        /* 3865 */
        return def / 2;

    }


    public static boolean isHyperTeleMap(int mapId) {
        /* 3869 */
        for (int i : hyperTele) {
            /* 3870 */
            if (i == mapId) {
                /* 3871 */
                return true;

            }

        }
        /* 3874 */
        return false;

    }


    public static int getCurrentDate() {
        /* 3878 */
        return DateUtil.getTime();

    }


    public static int getCurrentDate_NoTime() {
        /* 3882 */
        String time = DateUtil.getCurrentDate();
        /* 3883 */
        return Integer.parseInt(time.substring(0, 4) + time.substring(5, 7) + time.substring(8, 10));

    }


    public static void achievementRatio(MapleClient c) {
        /* 3887 */
        if (c.getPlayer() == null || c.getPlayer().getMap() == null) {

            return;

        }

        /* 3891 */
        switch (c.getPlayer().getMapId()) {

            case 240080600:

            case 910010000:

            case 910340100:

            case 920010000:

            case 921120005:

            case 921160100:

            case 922010100:

            case 923040100:

            case 925100000:

            case 926100000:

            case 926110000:

            case 930000000:

            case 930000100:

            case 932000100:
                /* 3906 */
                c.announce(MaplePacketCreator.achievementRatio(0));

                break;

            case 921160200:

            case 922010200:

            case 922010300:

            case 922010400:

            case 922010401:

            case 922010402:

            case 922010403:

            case 922010404:

            case 922010405:

            case 925100100:

            case 926100001:

            case 926110001:

            case 930000200:
                /* 3921 */
                c.announce(MaplePacketCreator.achievementRatio(10));

                break;

            case 910340200:

            case 921120100:

            case 921160300:

            case 921160310:

            case 921160320:

            case 921160330:

            case 921160340:

            case 921160350:

            case 922010500:

            case 922010600:

            case 923040200:

            case 925100200:

            case 925100201:

            case 925100202:

            case 926100100:

            case 926110100:

            case 930000300:

            case 932000200:
                /* 3941 */
                c.announce(MaplePacketCreator.achievementRatio(25));

                break;

            case 921160400:

            case 926100200:

            case 926100201:

            case 926100202:

            case 926110200:

            case 926110201:

            case 926110202:

            case 930000400:
                /* 3951 */
                c.announce(MaplePacketCreator.achievementRatio(35));

                break;

            case 240080700:

            case 240080800:

            case 910340300:

            case 921120200:

            case 921160500:

            case 922010700:

            case 923040300:

            case 925100300:

            case 925100301:

            case 925100302:

            case 926100203:

            case 926110203:

            case 930000500:

            case 932000300:
                /* 3967 */
                c.announce(MaplePacketCreator.achievementRatio(50));

                break;

            case 910340400:

            case 921120300:

            case 921160600:

            case 922010800:

            case 923040400:

            case 925100400:

            case 926100300:

            case 926100301:

            case 926100302:

            case 926100303:

            case 926100304:

            case 926110300:

            case 926110301:

            case 926110302:

            case 926110303:

            case 926110304:

            case 930000600:

            case 932000400:
                /* 3987 */
                c.announce(MaplePacketCreator.achievementRatio(70));

                break;

            case 910340500:

            case 920010800:

            case 921120400:

            case 921160700:

            case 922010900:

            case 925100500:

            case 926100400:

            case 926100401:

            case 926110400:

            case 926110401:

            case 930000700:
                /* 4000 */
                c.announce(MaplePacketCreator.achievementRatio(85));

                break;

            case 920011000:

            case 920011100:

            case 920011200:

            case 920011300:

            case 921120500:

            case 921120600:

            case 922011000:

            case 922011100:

            case 925100600:

            case 926100500:

            case 926100600:

            case 926110500:

            case 926110600:

            case 930000800:
                /* 4016 */
                c.announce(MaplePacketCreator.achievementRatio(100));

                break;

        }

    }


    public static boolean isFishingMap(int mapid) {
        /* 4022 */
        String[] map = FishingConfig.FISHING_MAP.split(",");
        /* 4023 */
        for (String mapid_ : map) {
            /* 4024 */
            if (Integer.valueOf(mapid_).intValue() == mapid) {
                /* 4025 */
                return true;

            }

        }
        /* 4028 */
        return false;

    }


    public static boolean isTeamMap(int mapid) {
        /* 4032 */
        return (mapid == 109080000 || mapid == 109080001 || mapid == 109080002 || mapid == 109080003 || mapid == 109080010 || mapid == 109080011 || mapid == 109080012 || mapid == 109090300 || mapid == 109090301 || mapid == 109090302 || mapid == 109090303 || mapid == 109090304 || mapid == 910040100 || mapid == 960020100 || mapid == 960020101 || mapid == 960020102 || mapid == 960020103 || mapid == 960030100 || mapid == 689000000 || mapid == 689000010);

    }


    public static int getStatDice(int stat) {
        /* 4055 */
        switch (stat) {

            case 2:
                /* 4057 */
                return 30;

            case 3:
                /* 4059 */
                return 20;

            case 4:
                /* 4061 */
                return 15;

            case 5:
                /* 4063 */
                return 20;

            case 6:
                /* 4065 */
                return 30;

        }
        /* 4067 */
        return 0;

    }


    public static int getDiceStat(int buffid, int stat) {
        /* 4071 */
        if (buffid == stat || buffid % 10 == stat || buffid / 10 == stat)
            /* 4072 */ return getStatDice(stat);
        /* 4073 */
        if (buffid == stat * 100) {
            /* 4074 */
            return getStatDice(stat) + 10;

        }
        /* 4076 */
        return 0;

    }


    public static int getMPByJob(int job) {
        /* 4083 */
        switch (job) {

            case 3001:

            case 3100:

            case 3110:

            case 3111:

            case 3112:
                /* 4089 */
                return 10;

        }
        /* 4091 */
        return JobConstants.is神之子(job) ? 100 : 0;

    }


    public static int getHpApByJob(int jobId) {
        /* 4095 */
        if (jobId % 1000 / 100 > 5) {
            /* 4096 */
            jobId -= 500;

        }
        /* 4098 */
        if (jobId % 1000 / 100 == 5) {
            /* 4099 */
            switch (jobId / 10) {

                case 51:
                    /* 4101 */
                    return 68;

                case 53:
                    /* 4103 */
                    return 28;

            }

        }
        /* 4106 */
        switch (jobId / 100) {

            case 21:
                /* 4108 */
                return 30;

            case 22:
                /* 4110 */
                return 12;

            case 31:
                /* 4112 */
                return 38;

            case 32:
                /* 4114 */
                return 20;

        }
        /* 4116 */
        switch (jobId % 1000 / 100) {

            case 0:
                /* 4118 */
                return 8;

            case 1:
                /* 4120 */
                return 50;

            case 2:
                /* 4122 */
                return 6;

            case 3:

            case 4:
                /* 4125 */
                return 16;

            case 5:
                /* 4127 */
                return 18;

        }
        /* 4129 */
        return 8;

    }


    public static int getMpApByJob(int jobId) {
        /* 4134 */
        if (jobId / 100 == 31 || jobId / 100 == 65 || jobId / 100 == 100 || jobId / 100 == 101) {
            /* 4135 */
            return 0;

        }
        /* 4137 */
        if (jobId % 1000 / 100 > 5) {
            /* 4138 */
            jobId -= 500;

        }
        /* 4140 */
        switch (jobId / 100) {

            case 22:
                /* 4142 */
                return 72;

            case 32:
                /* 4144 */
                return 69;

        }
        /* 4146 */
        switch (jobId % 1000 / 100) {

            case 0:
                /* 4148 */
                return 57;

            case 1:
                /* 4150 */
                return 53;

            case 2:
                /* 4152 */
                return 79;

            case 3:

            case 4:
                /* 4155 */
                return 61;

            case 5:
                /* 4157 */
                return 65;

        }
        /* 4159 */
        return 57;

    }


    public static int getAdditionExpRate(int level) {
        /* 4164 */
        int addition = 1;
        /* 4165 */
        if (level < 100) {
            /* 4166 */
            addition = Math.max(20, 1000 - level * 10);

        }
        /* 4168 */
        return addition;

    }


    public static int getAdditionDropRate(int level) {
        /* 4172 */
        int addition = 1;
        /* 4173 */
        if (level < 70) {
            /* 4174 */
            addition = 2;

        }
        /* 4176 */
        return addition;

    }


    public static int getOverrideChangeToMap(int mapid) {
        /* 4180 */
        int ret = mapid;
        /* 4181 */
        switch (mapid) {

            case 100030000:

            case 101010102:

            case 102020300:

            case 103030200:

            case 104040002:

            case 105050400:

            case 677000010:
                /* 4189 */
                ret = 200000000;

                break;

        }
        /* 4192 */
        return ret;

    }


    public static int getOverrideReturnMap(int mapid) {
        /* 4196 */
        int ret = mapid;
        /* 4197 */
        switch (mapid) {

            case 960000100:
                /* 4199 */
                ret = 910150210;

                break;

        }




        /* 4206 */
        return ret;

    }


    public static boolean canSealedLevelUp(int itemid, int level, long exp) {
        /* 4210 */
        return (exp >= getExpNeededForLevel(160) && (SealedConfig.SEALED_OPEN ? (level < SealedConfig.SEALED_MAXLEVEL) : (level < (ItemConstants.isAccessory(itemid) ? 3 : 6))));

    }


    public static void initSealedExpRate() {
        /* 4214 */
        sealedExpRate.clear();
        /* 4215 */
        for (int i = 0; i < SealedConfig.SEALED_MAXLEVEL; i++) {
            /* 4216 */
            sealedExpRate.add(Integer.valueOf(MapleStatEffectFactory.parseEval(SealedConfig.SEALED_EXPRATE, i + 1)));

        }

    }


    public static int getSealedNeedScrollNum(int level) {
        /* 4221 */
        return MapleStatEffectFactory.parseEval(SealedConfig.SEALED_NEEDSCROLLNUM, level);

    }


    public static boolean isDoJangConsume(int id) {
        /* 4226 */
        return (id >= 2022431 && id <= 2022433);

    }


    public static boolean isShareQuestInfo(int questid) {
        /* 4230 */
        switch (questid) {

            case 7:

            case 9:
                /* 4233 */
                return true;

        }
        /* 4235 */
        return false;

    }


    public static boolean isHideNpc(int mapid, int npcid) {
        /* 4240 */
        if (!ServerConfig.WORLD_HIDENPCS.isEmpty())
            try {
                /* 4242 */
                Map<Integer, List<Integer>> hideinfo = (Map<Integer, List<Integer>>) JsonUtil.getMapperInstance().readValue(ServerConfig.WORLD_HIDENPCS, new TypeReference<Map<Integer, List<Integer>>>() {
                        }
                );
                /* 4244 */
                return (hideinfo.containsKey(Integer.valueOf(mapid)) && ((List) hideinfo.get(Integer.valueOf(mapid))).contains(Integer.valueOf(npcid)));
                /* 4245 */
            } catch (IOException ex) {
                /* 4246 */
                log.error("判断NPC是否隐藏出错", ex);

                /* 4248 */
                switch (npcid) {

                    case 9000453:
                        /* 4250 */
                        return true;

                }

            }
        /* 4253 */
        return false;

    }

}


/* Location:              C:\PGX\Server.jar!\constants\GameConstants.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */